fixed status running task & remove re-start scheduling from controller(add field lastfinish - update sql)
This commit is contained in:
parent
c443d94ac3
commit
59b097b10b
6 changed files with 389 additions and 11 deletions
|
@ -449,4 +449,364 @@ BEGIN
|
||||||
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery])
|
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery])
|
||||||
VALUES (1401, 41, N'Lync2013', N'Microsoft Lync Server 2013 Multitenant Hosting Pack', N'WebsitePanel.Providers.HostedSolution.Lync2013, WebsitePanel.Providers.HostedSolution.Lync2013', N'Lync', NULL)
|
VALUES (1401, 41, N'Lync2013', N'Microsoft Lync Server 2013 Multitenant Hosting Pack', N'WebsitePanel.Providers.HostedSolution.Lync2013, WebsitePanel.Providers.HostedSolution.Lync2013', N'Lync', NULL)
|
||||||
END
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- Scheduler Service
|
||||||
|
ALTER TABLE Schedule
|
||||||
|
ADD LastFinish DATETIME NULL
|
||||||
|
GO
|
||||||
|
|
||||||
|
UPDATE Schedule SET LastFinish = LastRun
|
||||||
|
GO
|
||||||
|
|
||||||
|
ALTER PROCEDURE [dbo].[GetSchedule]
|
||||||
|
(
|
||||||
|
@ActorID int,
|
||||||
|
@ScheduleID int
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
|
||||||
|
-- select schedule
|
||||||
|
SELECT TOP 1
|
||||||
|
S.ScheduleID,
|
||||||
|
S.TaskID,
|
||||||
|
S.PackageID,
|
||||||
|
S.ScheduleName,
|
||||||
|
S.ScheduleTypeID,
|
||||||
|
S.Interval,
|
||||||
|
S.FromTime,
|
||||||
|
S.ToTime,
|
||||||
|
S.StartTime,
|
||||||
|
S.LastRun,
|
||||||
|
S.LastFinish,
|
||||||
|
S.NextRun,
|
||||||
|
S.Enabled,
|
||||||
|
S.HistoriesNumber,
|
||||||
|
S.PriorityID,
|
||||||
|
S.MaxExecutionTime,
|
||||||
|
S.WeekMonthDay,
|
||||||
|
1 AS StatusID
|
||||||
|
FROM Schedule AS S
|
||||||
|
WHERE
|
||||||
|
S.ScheduleID = @ScheduleID
|
||||||
|
AND dbo.CheckActorPackageRights(@ActorID, S.PackageID) = 1
|
||||||
|
|
||||||
|
-- select task
|
||||||
|
SELECT
|
||||||
|
ST.TaskID,
|
||||||
|
ST.TaskType,
|
||||||
|
ST.RoleID
|
||||||
|
FROM Schedule AS S
|
||||||
|
INNER JOIN ScheduleTasks AS ST ON S.TaskID = ST.TaskID
|
||||||
|
WHERE
|
||||||
|
S.ScheduleID = @ScheduleID
|
||||||
|
AND dbo.CheckActorPackageRights(@ActorID, S.PackageID) = 1
|
||||||
|
|
||||||
|
-- select schedule parameters
|
||||||
|
SELECT
|
||||||
|
S.ScheduleID,
|
||||||
|
STP.ParameterID,
|
||||||
|
STP.DataTypeID,
|
||||||
|
ISNULL(SP.ParameterValue, STP.DefaultValue) AS ParameterValue
|
||||||
|
FROM Schedule AS S
|
||||||
|
INNER JOIN ScheduleTaskParameters AS STP ON S.TaskID = STP.TaskID
|
||||||
|
LEFT OUTER JOIN ScheduleParameters AS SP ON STP.ParameterID = SP.ParameterID AND SP.ScheduleID = S.ScheduleID
|
||||||
|
WHERE
|
||||||
|
S.ScheduleID = @ScheduleID
|
||||||
|
AND dbo.CheckActorPackageRights(@ActorID, S.PackageID) = 1
|
||||||
|
|
||||||
|
RETURN
|
||||||
|
GO
|
||||||
|
|
||||||
|
ALTER PROCEDURE [dbo].[GetScheduleInternal]
|
||||||
|
(
|
||||||
|
@ScheduleID int
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
|
||||||
|
-- select schedule
|
||||||
|
SELECT
|
||||||
|
S.ScheduleID,
|
||||||
|
S.TaskID,
|
||||||
|
ST.TaskType,
|
||||||
|
ST.RoleID,
|
||||||
|
S.PackageID,
|
||||||
|
S.ScheduleName,
|
||||||
|
S.ScheduleTypeID,
|
||||||
|
S.Interval,
|
||||||
|
S.FromTime,
|
||||||
|
S.ToTime,
|
||||||
|
S.StartTime,
|
||||||
|
S.LastRun,
|
||||||
|
S.LastFinish,
|
||||||
|
S.NextRun,
|
||||||
|
S.Enabled,
|
||||||
|
1 AS StatusID,
|
||||||
|
S.PriorityID,
|
||||||
|
S.HistoriesNumber,
|
||||||
|
S.MaxExecutionTime,
|
||||||
|
S.WeekMonthDay
|
||||||
|
FROM Schedule AS S
|
||||||
|
INNER JOIN ScheduleTasks AS ST ON S.TaskID = ST.TaskID
|
||||||
|
WHERE ScheduleID = @ScheduleID
|
||||||
|
RETURN
|
||||||
|
GO
|
||||||
|
|
||||||
|
ALTER PROCEDURE [dbo].[GetSchedules]
|
||||||
|
(
|
||||||
|
@ActorID int,
|
||||||
|
@PackageID int,
|
||||||
|
@Recursive bit
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
|
||||||
|
-- check rights
|
||||||
|
IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0
|
||||||
|
RAISERROR('You are not allowed to access this package', 16, 1)
|
||||||
|
|
||||||
|
DECLARE @Schedules TABLE
|
||||||
|
(
|
||||||
|
ScheduleID int
|
||||||
|
)
|
||||||
|
|
||||||
|
INSERT INTO @Schedules (ScheduleID)
|
||||||
|
SELECT
|
||||||
|
S.ScheduleID
|
||||||
|
FROM Schedule AS S
|
||||||
|
INNER JOIN PackagesTree(@PackageID, @Recursive) AS PT ON S.PackageID = PT.PackageID
|
||||||
|
ORDER BY S.Enabled DESC, S.NextRun
|
||||||
|
|
||||||
|
|
||||||
|
-- select schedules
|
||||||
|
SELECT
|
||||||
|
S.ScheduleID,
|
||||||
|
S.TaskID,
|
||||||
|
ST.TaskType,
|
||||||
|
ST.RoleID,
|
||||||
|
S.PackageID,
|
||||||
|
S.ScheduleName,
|
||||||
|
S.ScheduleTypeID,
|
||||||
|
S.Interval,
|
||||||
|
S.FromTime,
|
||||||
|
S.ToTime,
|
||||||
|
S.StartTime,
|
||||||
|
S.LastRun,
|
||||||
|
S.LastFinish,
|
||||||
|
S.NextRun,
|
||||||
|
S.Enabled,
|
||||||
|
1 AS StatusID,
|
||||||
|
S.PriorityID,
|
||||||
|
S.MaxExecutionTime,
|
||||||
|
S.WeekMonthDay,
|
||||||
|
ISNULL(0, (SELECT TOP 1 SeverityID FROM AuditLog WHERE ItemID = S.ScheduleID AND SourceName = 'SCHEDULER' ORDER BY StartDate DESC)) AS LastResult,
|
||||||
|
|
||||||
|
U.Username,
|
||||||
|
U.FirstName,
|
||||||
|
U.LastName,
|
||||||
|
U.FullName,
|
||||||
|
U.RoleID,
|
||||||
|
U.Email
|
||||||
|
FROM @Schedules AS STEMP
|
||||||
|
INNER JOIN Schedule AS S ON STEMP.ScheduleID = S.ScheduleID
|
||||||
|
INNER JOIN Packages AS P ON S.PackageID = P.PackageID
|
||||||
|
INNER JOIN ScheduleTasks AS ST ON S.TaskID = ST.TaskID
|
||||||
|
INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID
|
||||||
|
|
||||||
|
-- select schedule parameters
|
||||||
|
SELECT
|
||||||
|
S.ScheduleID,
|
||||||
|
STP.ParameterID,
|
||||||
|
STP.DataTypeID,
|
||||||
|
ISNULL(SP.ParameterValue, STP.DefaultValue) AS ParameterValue
|
||||||
|
FROM @Schedules AS STEMP
|
||||||
|
INNER JOIN Schedule AS S ON STEMP.ScheduleID = S.ScheduleID
|
||||||
|
INNER JOIN ScheduleTaskParameters AS STP ON S.TaskID = STP.TaskID
|
||||||
|
LEFT OUTER JOIN ScheduleParameters AS SP ON STP.ParameterID = SP.ParameterID AND SP.ScheduleID = S.ScheduleID
|
||||||
|
RETURN
|
||||||
|
GO
|
||||||
|
|
||||||
|
ALTER PROCEDURE [dbo].[GetSchedulesPaged]
|
||||||
|
(
|
||||||
|
@ActorID int,
|
||||||
|
@PackageID int,
|
||||||
|
@Recursive bit,
|
||||||
|
@FilterColumn nvarchar(50) = '',
|
||||||
|
@FilterValue nvarchar(50) = '',
|
||||||
|
@SortColumn nvarchar(50),
|
||||||
|
@StartRow int,
|
||||||
|
@MaximumRows int
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
-- check rights
|
||||||
|
IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0
|
||||||
|
RAISERROR('You are not allowed to access this package', 16, 1)
|
||||||
|
|
||||||
|
DECLARE @condition nvarchar(400)
|
||||||
|
SET @condition = ' 1 = 1 '
|
||||||
|
|
||||||
|
IF @FilterColumn <> '' AND @FilterColumn IS NOT NULL
|
||||||
|
AND @FilterValue <> '' AND @FilterValue IS NOT NULL
|
||||||
|
SET @condition = @condition + ' AND ' + @FilterColumn + ' LIKE ''' + @FilterValue + ''''
|
||||||
|
|
||||||
|
IF @SortColumn IS NULL OR @SortColumn = ''
|
||||||
|
SET @SortColumn = 'S.ScheduleName ASC'
|
||||||
|
|
||||||
|
DECLARE @sql nvarchar(3500)
|
||||||
|
|
||||||
|
set @sql = '
|
||||||
|
SELECT COUNT(S.ScheduleID) FROM Schedule AS S
|
||||||
|
INNER JOIN PackagesTree(@PackageID, @Recursive) AS PT ON S.PackageID = PT.PackageID
|
||||||
|
INNER JOIN Packages AS P ON S.PackageID = P.PackageID
|
||||||
|
INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID
|
||||||
|
WHERE ' + @condition + '
|
||||||
|
|
||||||
|
DECLARE @Schedules AS TABLE
|
||||||
|
(
|
||||||
|
ScheduleID int
|
||||||
|
);
|
||||||
|
|
||||||
|
WITH TempSchedules AS (
|
||||||
|
SELECT ROW_NUMBER() OVER (ORDER BY ' + @SortColumn + ') as Row,
|
||||||
|
S.ScheduleID
|
||||||
|
FROM Schedule AS S
|
||||||
|
INNER JOIN Packages AS P ON S.PackageID = P.PackageID
|
||||||
|
INNER JOIN PackagesTree(@PackageID, @Recursive) AS PT ON S.PackageID = PT.PackageID
|
||||||
|
INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID
|
||||||
|
WHERE ' + @condition + '
|
||||||
|
)
|
||||||
|
|
||||||
|
INSERT INTO @Schedules
|
||||||
|
SELECT ScheduleID FROM TempSchedules
|
||||||
|
WHERE TempSchedules.Row BETWEEN @StartRow and @StartRow + @MaximumRows - 1
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
S.ScheduleID,
|
||||||
|
S.TaskID,
|
||||||
|
ST.TaskType,
|
||||||
|
ST.RoleID,
|
||||||
|
S.ScheduleName,
|
||||||
|
S.ScheduleTypeID,
|
||||||
|
S.Interval,
|
||||||
|
S.FromTime,
|
||||||
|
S.ToTime,
|
||||||
|
S.StartTime,
|
||||||
|
S.LastRun,
|
||||||
|
S.LastFinish,
|
||||||
|
S.NextRun,
|
||||||
|
S.Enabled,
|
||||||
|
1 AS StatusID,
|
||||||
|
S.PriorityID,
|
||||||
|
S.MaxExecutionTime,
|
||||||
|
S.WeekMonthDay,
|
||||||
|
ISNULL(0, (SELECT TOP 1 SeverityID FROM AuditLog WHERE ItemID = S.ScheduleID AND SourceName = ''SCHEDULER'' ORDER BY StartDate DESC)) AS LastResult,
|
||||||
|
|
||||||
|
-- packages
|
||||||
|
P.PackageID,
|
||||||
|
P.PackageName,
|
||||||
|
|
||||||
|
-- user
|
||||||
|
P.UserID,
|
||||||
|
U.Username,
|
||||||
|
U.FirstName,
|
||||||
|
U.LastName,
|
||||||
|
U.FullName,
|
||||||
|
U.RoleID,
|
||||||
|
U.Email
|
||||||
|
FROM @Schedules AS STEMP
|
||||||
|
INNER JOIN Schedule AS S ON STEMP.ScheduleID = S.ScheduleID
|
||||||
|
INNER JOIN ScheduleTasks AS ST ON S.TaskID = ST.TaskID
|
||||||
|
INNER JOIN Packages AS P ON S.PackageID = P.PackageID
|
||||||
|
INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID'
|
||||||
|
|
||||||
|
exec sp_executesql @sql, N'@PackageID int, @StartRow int, @MaximumRows int, @Recursive bit',
|
||||||
|
@PackageID, @StartRow, @MaximumRows, @Recursive
|
||||||
|
|
||||||
|
END
|
||||||
|
RETURN
|
||||||
|
GO
|
||||||
|
|
||||||
|
ALTER PROCEDURE [dbo].[UpdateSchedule]
|
||||||
|
(
|
||||||
|
@ActorID int,
|
||||||
|
@ScheduleID int,
|
||||||
|
@TaskID nvarchar(100),
|
||||||
|
@ScheduleName nvarchar(100),
|
||||||
|
@ScheduleTypeID nvarchar(50),
|
||||||
|
@Interval int,
|
||||||
|
@FromTime datetime,
|
||||||
|
@ToTime datetime,
|
||||||
|
@StartTime datetime,
|
||||||
|
@LastRun datetime,
|
||||||
|
@LastFinish datetime,
|
||||||
|
@NextRun datetime,
|
||||||
|
@Enabled bit,
|
||||||
|
@PriorityID nvarchar(50),
|
||||||
|
@HistoriesNumber int,
|
||||||
|
@MaxExecutionTime int,
|
||||||
|
@WeekMonthDay int,
|
||||||
|
@XmlParameters ntext
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
|
||||||
|
-- check rights
|
||||||
|
DECLARE @PackageID int
|
||||||
|
SELECT @PackageID = PackageID FROM Schedule
|
||||||
|
WHERE ScheduleID = @ScheduleID
|
||||||
|
|
||||||
|
IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0
|
||||||
|
RAISERROR('You are not allowed to access this package', 16, 1)
|
||||||
|
|
||||||
|
BEGIN TRAN
|
||||||
|
|
||||||
|
UPDATE Schedule
|
||||||
|
SET
|
||||||
|
TaskID = @TaskID,
|
||||||
|
ScheduleName = @ScheduleName,
|
||||||
|
ScheduleTypeID = @ScheduleTypeID,
|
||||||
|
Interval = @Interval,
|
||||||
|
FromTime = @FromTime,
|
||||||
|
ToTime = @ToTime,
|
||||||
|
StartTime = @StartTime,
|
||||||
|
LastRun = @LastRun,
|
||||||
|
LastFinish = @LastFinish,
|
||||||
|
NextRun = @NextRun,
|
||||||
|
Enabled = @Enabled,
|
||||||
|
PriorityID = @PriorityID,
|
||||||
|
HistoriesNumber = @HistoriesNumber,
|
||||||
|
MaxExecutionTime = @MaxExecutionTime,
|
||||||
|
WeekMonthDay = @WeekMonthDay
|
||||||
|
WHERE
|
||||||
|
ScheduleID = @ScheduleID
|
||||||
|
|
||||||
|
DECLARE @idoc int
|
||||||
|
--Create an internal representation of the XML document.
|
||||||
|
EXEC sp_xml_preparedocument @idoc OUTPUT, @XmlParameters
|
||||||
|
|
||||||
|
-- Execute a SELECT statement that uses the OPENXML rowset provider.
|
||||||
|
DELETE FROM ScheduleParameters
|
||||||
|
WHERE ScheduleID = @ScheduleID
|
||||||
|
|
||||||
|
INSERT INTO ScheduleParameters
|
||||||
|
(
|
||||||
|
ScheduleID,
|
||||||
|
ParameterID,
|
||||||
|
ParameterValue
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
@ScheduleID,
|
||||||
|
ParameterID,
|
||||||
|
ParameterValue
|
||||||
|
FROM OPENXML(@idoc, '/parameters/parameter',1) WITH
|
||||||
|
(
|
||||||
|
ParameterID nvarchar(50) '@id',
|
||||||
|
ParameterValue nvarchar(3000) '@value'
|
||||||
|
) as PV
|
||||||
|
|
||||||
|
-- remove document
|
||||||
|
exec sp_xml_removedocument @idoc
|
||||||
|
|
||||||
|
COMMIT TRAN
|
||||||
|
RETURN
|
||||||
GO
|
GO
|
|
@ -45,6 +45,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
private DateTime toTime;
|
private DateTime toTime;
|
||||||
private DateTime startTime;
|
private DateTime startTime;
|
||||||
private DateTime lastRun;
|
private DateTime lastRun;
|
||||||
|
private DateTime lastFinish;
|
||||||
private DateTime nextRun;
|
private DateTime nextRun;
|
||||||
private bool enabled;
|
private bool enabled;
|
||||||
private string statusId;
|
private string statusId;
|
||||||
|
@ -121,6 +122,12 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
set { this.lastRun = value; }
|
set { this.lastRun = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public System.DateTime LastFinish
|
||||||
|
{
|
||||||
|
get { return this.lastFinish; }
|
||||||
|
set { this.lastFinish = value; }
|
||||||
|
}
|
||||||
|
|
||||||
public System.DateTime NextRun
|
public System.DateTime NextRun
|
||||||
{
|
{
|
||||||
get { return this.nextRun; }
|
get { return this.nextRun; }
|
||||||
|
|
|
@ -1945,11 +1945,12 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
// read identity
|
// read identity
|
||||||
return Convert.ToInt32(prmId.Value);
|
return Convert.ToInt32(prmId.Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void UpdateSchedule(int actorId, int scheduleId, string taskId,
|
public static void UpdateSchedule(int actorId, int scheduleId, string taskId,
|
||||||
string scheduleName, string scheduleTypeId, int interval,
|
string scheduleName, string scheduleTypeId, int interval,
|
||||||
DateTime fromTime, DateTime toTime, DateTime startTime,
|
DateTime fromTime, DateTime toTime, DateTime startTime,
|
||||||
DateTime lastRun, DateTime nextRun, bool enabled, string priorityId, int historiesNumber,
|
DateTime lastRun, DateTime lastFinish, DateTime nextRun, bool enabled, string priorityId,
|
||||||
int maxExecutionTime, int weekMonthDay, string xmlParameters)
|
int historiesNumber, int maxExecutionTime, int weekMonthDay, string xmlParameters)
|
||||||
{
|
{
|
||||||
SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
|
SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
|
||||||
ObjectQualifier + "UpdateSchedule",
|
ObjectQualifier + "UpdateSchedule",
|
||||||
|
@ -1963,6 +1964,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
new SqlParameter("@toTime", toTime),
|
new SqlParameter("@toTime", toTime),
|
||||||
new SqlParameter("@startTime", startTime),
|
new SqlParameter("@startTime", startTime),
|
||||||
new SqlParameter("@lastRun", (lastRun == DateTime.MinValue) ? DBNull.Value : (object)lastRun),
|
new SqlParameter("@lastRun", (lastRun == DateTime.MinValue) ? DBNull.Value : (object)lastRun),
|
||||||
|
new SqlParameter("@lastFinish", (lastFinish == DateTime.MinValue) ? DBNull.Value : (object)lastFinish),
|
||||||
new SqlParameter("@nextRun", nextRun),
|
new SqlParameter("@nextRun", nextRun),
|
||||||
new SqlParameter("@enabled", enabled),
|
new SqlParameter("@enabled", enabled),
|
||||||
new SqlParameter("@priorityId", priorityId),
|
new SqlParameter("@priorityId", priorityId),
|
||||||
|
@ -1971,6 +1973,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
new SqlParameter("@weekMonthDay", weekMonthDay),
|
new SqlParameter("@weekMonthDay", weekMonthDay),
|
||||||
new SqlParameter("@xmlParameters", xmlParameters));
|
new SqlParameter("@xmlParameters", xmlParameters));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void DeleteSchedule(int actorId, int scheduleId)
|
public static void DeleteSchedule(int actorId, int scheduleId)
|
||||||
{
|
{
|
||||||
SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
|
SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
|
||||||
|
|
|
@ -58,13 +58,15 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
public static bool IsScheduleActive(int scheduleId)
|
public static bool IsScheduleActive(int scheduleId)
|
||||||
{
|
{
|
||||||
Dictionary<int, BackgroundTask> scheduledTasks = TaskManager.GetScheduledTasks();
|
Dictionary<int, BackgroundTask> scheduledTasks = TaskManager.GetScheduledTasks();
|
||||||
return scheduledTasks.ContainsKey(scheduleId);
|
|
||||||
|
ScheduleInfo scheduleInfo = SchedulerController.GetSchedule(scheduleId);
|
||||||
|
|
||||||
|
return scheduledTasks.ContainsKey(scheduleId) || scheduleInfo.LastRun > scheduleInfo.LastFinish;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void StartSchedule(SchedulerJob schedule)
|
public static void StartSchedule(SchedulerJob schedule)
|
||||||
{
|
{
|
||||||
Dictionary<int, BackgroundTask> scheduledTasks = TaskManager.GetScheduledTasks();
|
if (IsScheduleActive(schedule.ScheduleInfo.ScheduleId))
|
||||||
if (scheduledTasks.ContainsKey(schedule.ScheduleInfo.ScheduleId))
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// run schedule
|
// run schedule
|
||||||
|
@ -125,8 +127,6 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
static void RunSchedule(SchedulerJob schedule, bool changeNextRun)
|
static void RunSchedule(SchedulerJob schedule, bool changeNextRun)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// update next run (if required)
|
// update next run (if required)
|
||||||
|
|
|
@ -275,7 +275,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
schedule.HistoriesNumber, schedule.MaxExecutionTime, schedule.WeekMonthDay, xmlParameters);
|
schedule.HistoriesNumber, schedule.MaxExecutionTime, schedule.WeekMonthDay, xmlParameters);
|
||||||
|
|
||||||
// re-schedule tasks
|
// re-schedule tasks
|
||||||
Scheduler.ScheduleTasks();
|
//Scheduler.ScheduleTasks();
|
||||||
|
|
||||||
return scheduleId;
|
return scheduleId;
|
||||||
}
|
}
|
||||||
|
@ -297,11 +297,11 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
DataProvider.UpdateSchedule(SecurityContext.User.UserId,
|
DataProvider.UpdateSchedule(SecurityContext.User.UserId,
|
||||||
schedule.ScheduleId, schedule.TaskId, schedule.ScheduleName, schedule.ScheduleTypeId,
|
schedule.ScheduleId, schedule.TaskId, schedule.ScheduleName, schedule.ScheduleTypeId,
|
||||||
schedule.Interval, schedule.FromTime, schedule.ToTime, schedule.StartTime,
|
schedule.Interval, schedule.FromTime, schedule.ToTime, schedule.StartTime,
|
||||||
schedule.LastRun, schedule.NextRun, schedule.Enabled, schedule.PriorityId,
|
schedule.LastRun, schedule.LastFinish, schedule.NextRun, schedule.Enabled, schedule.PriorityId,
|
||||||
schedule.HistoriesNumber, schedule.MaxExecutionTime, schedule.WeekMonthDay, xmlParameters);
|
schedule.HistoriesNumber, schedule.MaxExecutionTime, schedule.WeekMonthDay, xmlParameters);
|
||||||
|
|
||||||
// re-schedule tasks
|
// re-schedule tasks
|
||||||
Scheduler.ScheduleTasks();
|
//Scheduler.ScheduleTasks();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -336,7 +336,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
DataProvider.DeleteSchedule(SecurityContext.User.UserId, scheduleId);
|
DataProvider.DeleteSchedule(SecurityContext.User.UserId, scheduleId);
|
||||||
|
|
||||||
// re-schedule tasks
|
// re-schedule tasks
|
||||||
Scheduler.ScheduleTasks();
|
//Scheduler.ScheduleTasks();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -223,6 +223,14 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
TopTask.TaskName, executionLog);
|
TopTask.TaskName, executionLog);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// update last finish time
|
||||||
|
ScheduleInfo scheduleInfo = SchedulerController.GetSchedule(TopTask.ItemId);
|
||||||
|
if (scheduleInfo != null)
|
||||||
|
{
|
||||||
|
scheduleInfo.LastFinish = DateTime.Now;
|
||||||
|
SchedulerController.UpdateSchedule(scheduleInfo);
|
||||||
|
}
|
||||||
|
|
||||||
// remove task from the stack
|
// remove task from the stack
|
||||||
TasksStack.RemoveAt(TasksStack.Count - 1);
|
TasksStack.RemoveAt(TasksStack.Count - 1);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue