fixed bugs Scheduler Service
This commit is contained in:
parent
d14b5fc01f
commit
20f4b371d1
30 changed files with 332 additions and 190 deletions
|
@ -451,12 +451,13 @@ VALUES (1401, 41, N'Lync2013', N'Microsoft Lync Server 2013 Multitenant Hosting
|
||||||
END
|
END
|
||||||
GO
|
GO
|
||||||
|
|
||||||
-- Scheduler Service
|
-------------------------------- Scheduler Service------------------------------------------------------
|
||||||
ALTER TABLE Schedule
|
|
||||||
ADD LastFinish DATETIME NULL
|
|
||||||
GO
|
|
||||||
|
|
||||||
UPDATE Schedule SET LastFinish = LastRun
|
IF EXISTS( SELECT * FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
|
WHERE TABLE_NAME = 'Schedule'
|
||||||
|
AND COLUMN_NAME = 'LastFinish')
|
||||||
|
ALTER TABLE Schedule
|
||||||
|
DROP COLUMN LastFinish
|
||||||
GO
|
GO
|
||||||
|
|
||||||
ALTER PROCEDURE [dbo].[GetSchedule]
|
ALTER PROCEDURE [dbo].[GetSchedule]
|
||||||
|
@ -478,7 +479,6 @@ SELECT TOP 1
|
||||||
S.ToTime,
|
S.ToTime,
|
||||||
S.StartTime,
|
S.StartTime,
|
||||||
S.LastRun,
|
S.LastRun,
|
||||||
S.LastFinish,
|
|
||||||
S.NextRun,
|
S.NextRun,
|
||||||
S.Enabled,
|
S.Enabled,
|
||||||
S.HistoriesNumber,
|
S.HistoriesNumber,
|
||||||
|
@ -538,7 +538,6 @@ SELECT
|
||||||
S.ToTime,
|
S.ToTime,
|
||||||
S.StartTime,
|
S.StartTime,
|
||||||
S.LastRun,
|
S.LastRun,
|
||||||
S.LastFinish,
|
|
||||||
S.NextRun,
|
S.NextRun,
|
||||||
S.Enabled,
|
S.Enabled,
|
||||||
1 AS StatusID,
|
1 AS StatusID,
|
||||||
|
@ -591,7 +590,6 @@ SELECT
|
||||||
S.ToTime,
|
S.ToTime,
|
||||||
S.StartTime,
|
S.StartTime,
|
||||||
S.LastRun,
|
S.LastRun,
|
||||||
S.LastFinish,
|
|
||||||
S.NextRun,
|
S.NextRun,
|
||||||
S.Enabled,
|
S.Enabled,
|
||||||
1 AS StatusID,
|
1 AS StatusID,
|
||||||
|
@ -693,7 +691,6 @@ SELECT
|
||||||
S.ToTime,
|
S.ToTime,
|
||||||
S.StartTime,
|
S.StartTime,
|
||||||
S.LastRun,
|
S.LastRun,
|
||||||
S.LastFinish,
|
|
||||||
S.NextRun,
|
S.NextRun,
|
||||||
S.Enabled,
|
S.Enabled,
|
||||||
1 AS StatusID,
|
1 AS StatusID,
|
||||||
|
@ -739,7 +736,6 @@ ALTER PROCEDURE [dbo].[UpdateSchedule]
|
||||||
@ToTime datetime,
|
@ToTime datetime,
|
||||||
@StartTime datetime,
|
@StartTime datetime,
|
||||||
@LastRun datetime,
|
@LastRun datetime,
|
||||||
@LastFinish datetime,
|
|
||||||
@NextRun datetime,
|
@NextRun datetime,
|
||||||
@Enabled bit,
|
@Enabled bit,
|
||||||
@PriorityID nvarchar(50),
|
@PriorityID nvarchar(50),
|
||||||
|
@ -770,7 +766,6 @@ SET
|
||||||
ToTime = @ToTime,
|
ToTime = @ToTime,
|
||||||
StartTime = @StartTime,
|
StartTime = @StartTime,
|
||||||
LastRun = @LastRun,
|
LastRun = @LastRun,
|
||||||
LastFinish = @LastFinish,
|
|
||||||
NextRun = @NextRun,
|
NextRun = @NextRun,
|
||||||
Enabled = @Enabled,
|
Enabled = @Enabled,
|
||||||
PriorityID = @PriorityID,
|
PriorityID = @PriorityID,
|
||||||
|
@ -815,54 +810,30 @@ UPDATE ScheduleTasks SET TaskType = RTRIM(TaskType) + '.Code'
|
||||||
WHERE SUBSTRING(RTRIM(TaskType), LEN(RTRIM(TaskType)) - 3, 4) <> 'Code'
|
WHERE SUBSTRING(RTRIM(TaskType), LEN(RTRIM(TaskType)) - 3, 4) <> 'Code'
|
||||||
GO
|
GO
|
||||||
|
|
||||||
IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'GetRunningSchedules')
|
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetRunningSchedules')
|
||||||
DROP PROCEDURE GetRunningSchedules
|
DROP PROCEDURE GetRunningSchedules
|
||||||
GO
|
GO
|
||||||
|
|
||||||
CREATE PROCEDURE [dbo].[GetRunningSchedules]
|
IF EXISTS (SELECT * FROM SYS.TABLES WHERE name = 'BackgroundTaskStack')
|
||||||
(
|
DROP TABLE BackgroundTaskStack
|
||||||
@ActorID int
|
GO
|
||||||
)
|
|
||||||
AS
|
|
||||||
|
|
||||||
SELECT
|
IF EXISTS (SELECT * FROM SYS.TABLES WHERE name = 'BackgroundTaskLogs')
|
||||||
S.ScheduleID,
|
DROP TABLE BackgroundTaskLogs
|
||||||
S.TaskID,
|
GO
|
||||||
ST.TaskType,
|
|
||||||
ST.RoleID,
|
IF EXISTS (SELECT * FROM SYS.TABLES WHERE name = 'BackgroundTaskParameters')
|
||||||
S.PackageID,
|
DROP TABLE BackgroundTaskParameters
|
||||||
S.ScheduleName,
|
GO
|
||||||
S.ScheduleTypeID,
|
|
||||||
S.Interval,
|
IF EXISTS (SELECT * FROM SYS.TABLES WHERE name = 'BackgroundTasks')
|
||||||
S.FromTime,
|
DROP TABLE BackgroundTasks
|
||||||
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 Schedule AS S
|
|
||||||
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
|
|
||||||
WHERE (U.UserID = @ActorID OR U.OwnerID = @ActorID)
|
|
||||||
AND (ISNULL(S.LastRun, DATEADD(YEAR, -1, GETDATE())) > ISNULL(S.LastFinish, DATEADD(YEAR, -1, GETDATE())))
|
|
||||||
GO
|
GO
|
||||||
|
|
||||||
CREATE TABLE BackgroundTasks
|
CREATE TABLE BackgroundTasks
|
||||||
(
|
(
|
||||||
ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
|
ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
|
||||||
|
Guid UNIQUEIDENTIFIER NOT NULL,
|
||||||
TaskID NVARCHAR(255),
|
TaskID NVARCHAR(255),
|
||||||
ScheduleID INT NOT NULL,
|
ScheduleID INT NOT NULL,
|
||||||
PackageID INT NOT NULL,
|
PackageID INT NOT NULL,
|
||||||
|
@ -917,9 +888,14 @@ CREATE TABLE BackgroundTaskStack
|
||||||
)
|
)
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'AddBackgroundTask')
|
||||||
|
DROP PROCEDURE AddBackgroundTask
|
||||||
|
GO
|
||||||
|
|
||||||
CREATE PROCEDURE [dbo].[AddBackgroundTask]
|
CREATE PROCEDURE [dbo].[AddBackgroundTask]
|
||||||
(
|
(
|
||||||
@BackgroundTaskID INT OUTPUT,
|
@BackgroundTaskID INT OUTPUT,
|
||||||
|
@Guid UNIQUEIDENTIFIER,
|
||||||
@TaskID NVARCHAR(255),
|
@TaskID NVARCHAR(255),
|
||||||
@ScheduleID INT,
|
@ScheduleID INT,
|
||||||
@PackageID INT,
|
@PackageID INT,
|
||||||
|
@ -942,6 +918,7 @@ AS
|
||||||
|
|
||||||
INSERT INTO BackgroundTasks
|
INSERT INTO BackgroundTasks
|
||||||
(
|
(
|
||||||
|
Guid,
|
||||||
TaskID,
|
TaskID,
|
||||||
ScheduleID,
|
ScheduleID,
|
||||||
PackageID,
|
PackageID,
|
||||||
|
@ -962,6 +939,7 @@ INSERT INTO BackgroundTasks
|
||||||
)
|
)
|
||||||
VALUES
|
VALUES
|
||||||
(
|
(
|
||||||
|
@Guid,
|
||||||
@TaskID,
|
@TaskID,
|
||||||
@ScheduleID,
|
@ScheduleID,
|
||||||
@PackageID,
|
@PackageID,
|
||||||
|
@ -986,6 +964,10 @@ SET @BackgroundTaskID = SCOPE_IDENTITY()
|
||||||
RETURN
|
RETURN
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetBackgroundTask')
|
||||||
|
DROP PROCEDURE GetBackgroundTask
|
||||||
|
GO
|
||||||
|
|
||||||
CREATE PROCEDURE [dbo].[GetBackgroundTask]
|
CREATE PROCEDURE [dbo].[GetBackgroundTask]
|
||||||
(
|
(
|
||||||
@ActorID INT,
|
@ActorID INT,
|
||||||
|
@ -995,6 +977,7 @@ AS
|
||||||
|
|
||||||
SELECT TOP 1
|
SELECT TOP 1
|
||||||
T.ID,
|
T.ID,
|
||||||
|
T.Guid,
|
||||||
T.TaskID,
|
T.TaskID,
|
||||||
T.ScheduleID,
|
T.ScheduleID,
|
||||||
T.PackageID,
|
T.PackageID,
|
||||||
|
@ -1019,6 +1002,10 @@ INNER JOIN BackgroundTaskStack AS TS
|
||||||
WHERE T.TaskID = @TaskID AND T.UserID = @ActorID
|
WHERE T.TaskID = @TaskID AND T.UserID = @ActorID
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetBackgroundTasks')
|
||||||
|
DROP PROCEDURE GetBackgroundTasks
|
||||||
|
GO
|
||||||
|
|
||||||
CREATE PROCEDURE [dbo].[GetBackgroundTasks]
|
CREATE PROCEDURE [dbo].[GetBackgroundTasks]
|
||||||
(
|
(
|
||||||
@ActorID INT
|
@ActorID INT
|
||||||
|
@ -1027,6 +1014,7 @@ AS
|
||||||
|
|
||||||
SELECT
|
SELECT
|
||||||
T.ID,
|
T.ID,
|
||||||
|
T.Guid,
|
||||||
T.TaskID,
|
T.TaskID,
|
||||||
T.ScheduleId,
|
T.ScheduleId,
|
||||||
T.PackageId,
|
T.PackageId,
|
||||||
|
@ -1051,14 +1039,20 @@ INNER JOIN BackgroundTaskStack AS TS
|
||||||
WHERE T.UserID = @ActorID
|
WHERE T.UserID = @ActorID
|
||||||
GO
|
GO
|
||||||
|
|
||||||
CREATE PROCEDURE [dbo].[GetBackgroundTopTask]
|
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetThreadBackgroundTasks')
|
||||||
|
DROP PROCEDURE GetThreadBackgroundTasks
|
||||||
|
GO
|
||||||
|
|
||||||
|
CREATE PROCEDURE [dbo].GetThreadBackgroundTasks
|
||||||
(
|
(
|
||||||
@ActorID INT
|
@ActorID INT,
|
||||||
|
@Guid UNIQUEIDENTIFIER
|
||||||
)
|
)
|
||||||
AS
|
AS
|
||||||
|
|
||||||
SELECT TOP 1
|
SELECT
|
||||||
T.ID,
|
T.ID,
|
||||||
|
T.Guid,
|
||||||
T.TaskID,
|
T.TaskID,
|
||||||
T.ScheduleId,
|
T.ScheduleId,
|
||||||
T.PackageId,
|
T.PackageId,
|
||||||
|
@ -1080,10 +1074,52 @@ SELECT TOP 1
|
||||||
FROM BackgroundTasks AS T
|
FROM BackgroundTasks AS T
|
||||||
INNER JOIN BackgroundTaskStack AS TS
|
INNER JOIN BackgroundTaskStack AS TS
|
||||||
ON TS.TaskId = T.ID
|
ON TS.TaskId = T.ID
|
||||||
WHERE T.UserID = @ActorID
|
WHERE T.UserID = @ActorID AND T.Guid = @Guid
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetBackgroundTopTask')
|
||||||
|
DROP PROCEDURE GetBackgroundTopTask
|
||||||
|
GO
|
||||||
|
|
||||||
|
CREATE PROCEDURE [dbo].[GetBackgroundTopTask]
|
||||||
|
(
|
||||||
|
@ActorID INT,
|
||||||
|
@Guid UNIQUEIDENTIFIER
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
|
||||||
|
SELECT TOP 1
|
||||||
|
T.ID,
|
||||||
|
T.Guid,
|
||||||
|
T.TaskID,
|
||||||
|
T.ScheduleId,
|
||||||
|
T.PackageId,
|
||||||
|
T.UserId,
|
||||||
|
T.EffectiveUserId,
|
||||||
|
T.TaskName,
|
||||||
|
T.ItemId,
|
||||||
|
T.ItemName,
|
||||||
|
T.StartDate,
|
||||||
|
T.FinishDate,
|
||||||
|
T.IndicatorCurrent,
|
||||||
|
T.IndicatorMaximum,
|
||||||
|
T.MaximumExecutionTime,
|
||||||
|
T.Source,
|
||||||
|
T.Severity,
|
||||||
|
T.Completed,
|
||||||
|
T.NotifyOnComplete,
|
||||||
|
T.Status
|
||||||
|
FROM BackgroundTasks AS T
|
||||||
|
INNER JOIN BackgroundTaskStack AS TS
|
||||||
|
ON TS.TaskId = T.ID
|
||||||
|
WHERE T.UserID = @ActorID AND T.Guid = @Guid
|
||||||
ORDER BY T.StartDate DESC
|
ORDER BY T.StartDate DESC
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'AddBackgroundTaskLog')
|
||||||
|
DROP PROCEDURE AddBackgroundTaskLog
|
||||||
|
GO
|
||||||
|
|
||||||
CREATE PROCEDURE [dbo].[AddBackgroundTaskLog]
|
CREATE PROCEDURE [dbo].[AddBackgroundTaskLog]
|
||||||
(
|
(
|
||||||
@TaskID INT,
|
@TaskID INT,
|
||||||
|
@ -1121,6 +1157,10 @@ VALUES
|
||||||
)
|
)
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetBackgroundTaskLogs')
|
||||||
|
DROP PROCEDURE GetBackgroundTaskLogs
|
||||||
|
GO
|
||||||
|
|
||||||
CREATE PROCEDURE [dbo].[GetBackgroundTaskLogs]
|
CREATE PROCEDURE [dbo].[GetBackgroundTaskLogs]
|
||||||
(
|
(
|
||||||
@TaskID INT,
|
@TaskID INT,
|
||||||
|
@ -1142,8 +1182,13 @@ WHERE L.TaskID = @TaskID AND L.Date >= @StartLogTime
|
||||||
ORDER BY L.Date
|
ORDER BY L.Date
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'UpdateBackgroundTask')
|
||||||
|
DROP PROCEDURE UpdateBackgroundTask
|
||||||
|
GO
|
||||||
|
|
||||||
CREATE PROCEDURE [dbo].[UpdateBackgroundTask]
|
CREATE PROCEDURE [dbo].[UpdateBackgroundTask]
|
||||||
(
|
(
|
||||||
|
@Guid UNIQUEIDENTIFIER,
|
||||||
@TaskID INT,
|
@TaskID INT,
|
||||||
@ScheduleID INT,
|
@ScheduleID INT,
|
||||||
@PackageID INT,
|
@PackageID INT,
|
||||||
|
@ -1164,6 +1209,7 @@ AS
|
||||||
|
|
||||||
UPDATE BackgroundTasks
|
UPDATE BackgroundTasks
|
||||||
SET
|
SET
|
||||||
|
Guid = @Guid,
|
||||||
ScheduleID = @ScheduleID,
|
ScheduleID = @ScheduleID,
|
||||||
PackageID = @PackageID,
|
PackageID = @PackageID,
|
||||||
TaskName = @TaskName,
|
TaskName = @TaskName,
|
||||||
|
@ -1181,6 +1227,10 @@ SET
|
||||||
WHERE ID = @TaskID
|
WHERE ID = @TaskID
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetBackgroundTaskParams')
|
||||||
|
DROP PROCEDURE GetBackgroundTaskParams
|
||||||
|
GO
|
||||||
|
|
||||||
CREATE PROCEDURE [dbo].[GetBackgroundTaskParams]
|
CREATE PROCEDURE [dbo].[GetBackgroundTaskParams]
|
||||||
(
|
(
|
||||||
@TaskID INT
|
@TaskID INT
|
||||||
|
@ -1196,6 +1246,10 @@ FROM BackgroundTaskParameters AS P
|
||||||
WHERE P.TaskID = @TaskID
|
WHERE P.TaskID = @TaskID
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'AddBackgroundTaskParam')
|
||||||
|
DROP PROCEDURE AddBackgroundTaskParam
|
||||||
|
GO
|
||||||
|
|
||||||
CREATE PROCEDURE [dbo].[AddBackgroundTaskParam]
|
CREATE PROCEDURE [dbo].[AddBackgroundTaskParam]
|
||||||
(
|
(
|
||||||
@TaskID INT,
|
@TaskID INT,
|
||||||
|
@ -1218,6 +1272,10 @@ VALUES
|
||||||
)
|
)
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'DeleteBackgroundTaskParams')
|
||||||
|
DROP PROCEDURE DeleteBackgroundTaskParams
|
||||||
|
GO
|
||||||
|
|
||||||
CREATE PROCEDURE [dbo].[DeleteBackgroundTaskParams]
|
CREATE PROCEDURE [dbo].[DeleteBackgroundTaskParams]
|
||||||
(
|
(
|
||||||
@TaskID INT
|
@TaskID INT
|
||||||
|
@ -1228,6 +1286,10 @@ DELETE FROM BackgroundTaskParameters
|
||||||
WHERE TaskID = @TaskID
|
WHERE TaskID = @TaskID
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'AddBackgroundTaskStack')
|
||||||
|
DROP PROCEDURE AddBackgroundTaskStack
|
||||||
|
GO
|
||||||
|
|
||||||
CREATE PROCEDURE [dbo].[AddBackgroundTaskStack]
|
CREATE PROCEDURE [dbo].[AddBackgroundTaskStack]
|
||||||
(
|
(
|
||||||
@TaskID INT
|
@TaskID INT
|
||||||
|
@ -1244,6 +1306,10 @@ VALUES
|
||||||
)
|
)
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'DeleteBackgroundTaskStack')
|
||||||
|
DROP PROCEDURE DeleteBackgroundTaskStack
|
||||||
|
GO
|
||||||
|
|
||||||
CREATE PROCEDURE [dbo].[DeleteBackgroundTaskStack]
|
CREATE PROCEDURE [dbo].[DeleteBackgroundTaskStack]
|
||||||
(
|
(
|
||||||
@TaskID INT
|
@TaskID INT
|
||||||
|
@ -1254,6 +1320,10 @@ DELETE FROM BackgroundTaskStack
|
||||||
WHERE TaskID = @TaskID
|
WHERE TaskID = @TaskID
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetProcessBackgroundTasks')
|
||||||
|
DROP PROCEDURE GetProcessBackgroundTasks
|
||||||
|
GO
|
||||||
|
|
||||||
CREATE PROCEDURE [dbo].[GetProcessBackgroundTasks]
|
CREATE PROCEDURE [dbo].[GetProcessBackgroundTasks]
|
||||||
(
|
(
|
||||||
@ActorID INT,
|
@ActorID INT,
|
||||||
|
@ -1283,4 +1353,44 @@ SELECT
|
||||||
T.Status
|
T.Status
|
||||||
FROM BackgroundTasks AS T
|
FROM BackgroundTasks AS T
|
||||||
WHERE T.UserID = @ActorID AND T.Completed = 0 AND T.Status = @Status
|
WHERE T.UserID = @ActorID AND T.Completed = 0 AND T.Status = @Status
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetScheduleBackgroundTasks')
|
||||||
|
DROP PROCEDURE GetScheduleBackgroundTasks
|
||||||
|
GO
|
||||||
|
|
||||||
|
CREATE PROCEDURE [dbo].[GetScheduleBackgroundTasks]
|
||||||
|
(
|
||||||
|
@ActorID INT,
|
||||||
|
@ScheduleID INT
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
T.ID,
|
||||||
|
T.TaskID,
|
||||||
|
T.ScheduleId,
|
||||||
|
T.PackageId,
|
||||||
|
T.UserId,
|
||||||
|
T.EffectiveUserId,
|
||||||
|
T.TaskName,
|
||||||
|
T.ItemId,
|
||||||
|
T.ItemName,
|
||||||
|
T.StartDate,
|
||||||
|
T.FinishDate,
|
||||||
|
T.IndicatorCurrent,
|
||||||
|
T.IndicatorMaximum,
|
||||||
|
T.MaximumExecutionTime,
|
||||||
|
T.Source,
|
||||||
|
T.Severity,
|
||||||
|
T.Completed,
|
||||||
|
T.NotifyOnComplete,
|
||||||
|
T.Status
|
||||||
|
FROM BackgroundTasks AS T
|
||||||
|
WHERE T.Guid = (
|
||||||
|
SELECT Guid FROM BackgroundTasks
|
||||||
|
WHERE ScheduleID = @ScheduleID
|
||||||
|
AND UserID = @ActorID
|
||||||
|
AND Completed = 0 AND Status IN (1, 3))
|
||||||
|
AND T.UserID = @ActorID AND T.Completed = 0 AND T.Status IN (1, 3)
|
||||||
GO
|
GO
|
|
@ -45,7 +45,6 @@ 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;
|
||||||
|
@ -122,12 +121,6 @@ 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; }
|
||||||
|
|
|
@ -43,6 +43,8 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
public Guid Guid { get; set; }
|
||||||
|
|
||||||
public String TaskId { get; set; }
|
public String TaskId { get; set; }
|
||||||
|
|
||||||
public int ScheduleId { get; set; }
|
public int ScheduleId { get; set; }
|
||||||
|
@ -98,10 +100,11 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
Logs = new List<BackgroundTaskLogRecord>();
|
Logs = new List<BackgroundTaskLogRecord>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public BackgroundTask(String taskId, int userId, int effectiveUserId, String source, String taskName, String itemName,
|
public BackgroundTask(Guid guid, String taskId, int userId, int effectiveUserId, String source, String taskName, String itemName,
|
||||||
int itemId, int scheduleId, int packageId, int maximumExecutionTime, List<BackgroundTaskParameter> parameters)
|
int itemId, int scheduleId, int packageId, int maximumExecutionTime, List<BackgroundTaskParameter> parameters)
|
||||||
: this()
|
: this()
|
||||||
{
|
{
|
||||||
|
Guid = guid;
|
||||||
TaskId = taskId;
|
TaskId = taskId;
|
||||||
UserId = userId;
|
UserId = userId;
|
||||||
EffectiveUserId = effectiveUserId;
|
EffectiveUserId = effectiveUserId;
|
||||||
|
@ -172,6 +175,8 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
public Object Value { get; set; }
|
public Object Value { get; set; }
|
||||||
|
|
||||||
|
public String TypeName { get; set; }
|
||||||
|
|
||||||
public String SerializerValue { get; set; }
|
public String SerializerValue { get; set; }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
|
@ -1845,29 +1845,46 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
new SqlParameter("@taskId", taskId));
|
new SqlParameter("@taskId", taskId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static IDataReader GetScheduleBackgroundTasks(int actorId, int scheduleId)
|
||||||
|
{
|
||||||
|
return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
|
||||||
|
ObjectQualifier + "GetScheduleBackgroundTasks",
|
||||||
|
new SqlParameter("@actorId", actorId),
|
||||||
|
new SqlParameter("@scheduleId", scheduleId));
|
||||||
|
}
|
||||||
|
|
||||||
public static IDataReader GetBackgroundTasks(int actorId)
|
public static IDataReader GetBackgroundTasks(int actorId)
|
||||||
{
|
{
|
||||||
return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
|
return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
|
||||||
ObjectQualifier + "GetBackgroundTasks",
|
ObjectQualifier + "GetBackgroundTasks",
|
||||||
new SqlParameter("actorId", actorId));
|
new SqlParameter("@actorId", actorId));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IDataReader GetBackgroundTasks(int actorId, Guid guid)
|
||||||
|
{
|
||||||
|
return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
|
||||||
|
ObjectQualifier + "GetThreadBackgroundTasks",
|
||||||
|
new SqlParameter("@actorId", actorId),
|
||||||
|
new SqlParameter("@guid", guid));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IDataReader GetProcessBackgroundTasks(int actorId, BackgroundTaskStatus status)
|
public static IDataReader GetProcessBackgroundTasks(int actorId, BackgroundTaskStatus status)
|
||||||
{
|
{
|
||||||
return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
|
return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
|
||||||
ObjectQualifier + "GetProcessBackgroundTasks",
|
ObjectQualifier + "GetProcessBackgroundTasks",
|
||||||
new SqlParameter("actorId", actorId),
|
new SqlParameter("@actorId", actorId),
|
||||||
new SqlParameter("status", (int)status));
|
new SqlParameter("@status", (int)status));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IDataReader GetBackgroundTopTask(int actorId)
|
public static IDataReader GetBackgroundTopTask(int actorId, Guid guid)
|
||||||
{
|
{
|
||||||
return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
|
return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
|
||||||
ObjectQualifier + "GetBackGroundTopTask",
|
ObjectQualifier + "GetBackGroundTopTask",
|
||||||
new SqlParameter("actorId", actorId));
|
new SqlParameter("@actorId", actorId),
|
||||||
|
new SqlParameter("@guid", guid));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int AddBackgroundTask(string taskId, int scheduleId, int packageId, int userId,
|
public static int AddBackgroundTask(Guid guid, string taskId, int scheduleId, int packageId, int userId,
|
||||||
int effectiveUserId, string taskName, int itemId, string itemName, DateTime startDate,
|
int effectiveUserId, string taskName, int itemId, string itemName, DateTime startDate,
|
||||||
int indicatorCurrent, int indicatorMaximum, int maximumExecutionTime, string source,
|
int indicatorCurrent, int indicatorMaximum, int maximumExecutionTime, string source,
|
||||||
int severity, bool completed, bool notifyOnComplete, BackgroundTaskStatus status)
|
int severity, bool completed, bool notifyOnComplete, BackgroundTaskStatus status)
|
||||||
|
@ -1878,6 +1895,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
|
SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
|
||||||
ObjectQualifier + "AddBackgroundTask",
|
ObjectQualifier + "AddBackgroundTask",
|
||||||
prmId,
|
prmId,
|
||||||
|
new SqlParameter("@guid", guid),
|
||||||
new SqlParameter("@taskId", taskId),
|
new SqlParameter("@taskId", taskId),
|
||||||
new SqlParameter("@scheduleId", scheduleId),
|
new SqlParameter("@scheduleId", scheduleId),
|
||||||
new SqlParameter("@packageId", packageId),
|
new SqlParameter("@packageId", packageId),
|
||||||
|
@ -1923,12 +1941,13 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
new SqlParameter("@startLogTime", startLogTime));
|
new SqlParameter("@startLogTime", startLogTime));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void UpdateBackgroundTask(int taskId, int scheduleId, int packageId, string taskName, int itemId,
|
public static void UpdateBackgroundTask(Guid guid, int taskId, int scheduleId, int packageId, string taskName, int itemId,
|
||||||
string itemName, DateTime finishDate, int indicatorCurrent, int indicatorMaximum, int maximumExecutionTime,
|
string itemName, DateTime finishDate, int indicatorCurrent, int indicatorMaximum, int maximumExecutionTime,
|
||||||
string source, int severity, bool completed, bool notifyOnComplete, BackgroundTaskStatus status)
|
string source, int severity, bool completed, bool notifyOnComplete, BackgroundTaskStatus status)
|
||||||
{
|
{
|
||||||
SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
|
SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
|
||||||
ObjectQualifier + "UpdateBackgroundTask",
|
ObjectQualifier + "UpdateBackgroundTask",
|
||||||
|
new SqlParameter("@Guid", guid),
|
||||||
new SqlParameter("@taskId", taskId),
|
new SqlParameter("@taskId", taskId),
|
||||||
new SqlParameter("@scheduleId", scheduleId),
|
new SqlParameter("@scheduleId", scheduleId),
|
||||||
new SqlParameter("@packageId", packageId),
|
new SqlParameter("@packageId", packageId),
|
||||||
|
@ -2002,13 +2021,6 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
new SqlParameter("@taskId", taskId));
|
new SqlParameter("@taskId", taskId));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IDataReader GetRunningSchedules(int actorId)
|
|
||||||
{
|
|
||||||
return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
|
|
||||||
ObjectQualifier + "GetRunningSchedules",
|
|
||||||
new SqlParameter("@actorId", actorId));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static DataSet GetSchedules(int actorId, int packageId)
|
public static DataSet GetSchedules(int actorId, int packageId)
|
||||||
{
|
{
|
||||||
return SqlHelper.ExecuteDataset(ConnectionString, CommandType.StoredProcedure,
|
return SqlHelper.ExecuteDataset(ConnectionString, CommandType.StoredProcedure,
|
||||||
|
@ -2107,7 +2119,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
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 lastFinish, DateTime nextRun, bool enabled, string priorityId,
|
DateTime lastRun, DateTime nextRun, bool enabled, string priorityId,
|
||||||
int historiesNumber, int maxExecutionTime, int weekMonthDay, string xmlParameters)
|
int historiesNumber, int maxExecutionTime, int weekMonthDay, string xmlParameters)
|
||||||
{
|
{
|
||||||
SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
|
SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
|
||||||
|
@ -2122,7 +2134,6 @@ 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),
|
||||||
|
|
|
@ -45,7 +45,7 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.TaskEventHandlers
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public override void OnComplete()
|
public override void OnComplete()
|
||||||
{
|
{
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TaskManager.TopTask;
|
||||||
|
|
||||||
if (!TaskManager.HasErrors(topTask))
|
if (!TaskManager.HasErrors(topTask))
|
||||||
{
|
{
|
||||||
|
@ -74,7 +74,7 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.TaskEventHandlers
|
||||||
// send an e-mail notification
|
// send an e-mail notification
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TaskManager.TopTask;
|
||||||
|
|
||||||
bool sendNotification = Utils.ParseBool(topTask.GetParamValue(SystemTaskParams.PARAM_SEND_EMAIL), false);
|
bool sendNotification = Utils.ParseBool(topTask.GetParamValue(SystemTaskParams.PARAM_SEND_EMAIL), false);
|
||||||
|
|
||||||
|
@ -117,7 +117,7 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.TaskEventHandlers
|
||||||
//
|
//
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TaskManager.TopTask;
|
||||||
|
|
||||||
// Read task parameters
|
// Read task parameters
|
||||||
Invoice invoice = (Invoice)topTask.GetParamValue(SystemTaskParams.PARAM_INVOICE);
|
Invoice invoice = (Invoice)topTask.GetParamValue(SystemTaskParams.PARAM_INVOICE);
|
||||||
|
@ -146,7 +146,7 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.TaskEventHandlers
|
||||||
//
|
//
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TaskManager.TopTask;
|
||||||
|
|
||||||
// Read task parameters
|
// Read task parameters
|
||||||
Contract contract = (Contract)topTask.GetParamValue(SystemTaskParams.PARAM_CONTRACT);
|
Contract contract = (Contract)topTask.GetParamValue(SystemTaskParams.PARAM_CONTRACT);
|
||||||
|
|
|
@ -44,7 +44,7 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.TaskEventHandlers
|
||||||
|
|
||||||
public override void OnComplete()
|
public override void OnComplete()
|
||||||
{
|
{
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TaskManager.TopTask;
|
||||||
|
|
||||||
if (!TaskManager.HasErrors(topTask))
|
if (!TaskManager.HasErrors(topTask))
|
||||||
{
|
{
|
||||||
|
@ -66,10 +66,8 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.TaskEventHandlers
|
||||||
|
|
||||||
private void RegisterInvoiceActivationTrigger()
|
private void RegisterInvoiceActivationTrigger()
|
||||||
{
|
{
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
|
||||||
|
|
||||||
// Read contract invoice
|
// Read contract invoice
|
||||||
Invoice invoice = (Invoice)topTask.GetParamValue(SystemTaskParams.PARAM_INVOICE);
|
Invoice invoice = (Invoice)TaskManager.TopTask.GetParamValue(SystemTaskParams.PARAM_INVOICE);
|
||||||
//
|
//
|
||||||
TriggerSystem.TriggerController.AddSystemTrigger(invoice.InvoiceId.ToString(),
|
TriggerSystem.TriggerController.AddSystemTrigger(invoice.InvoiceId.ToString(),
|
||||||
ActivateInvoiceTrigger.STATUS_AWAITING_PAYMENT, typeof(ActivateInvoiceTrigger));
|
ActivateInvoiceTrigger.STATUS_AWAITING_PAYMENT, typeof(ActivateInvoiceTrigger));
|
||||||
|
@ -77,7 +75,7 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.TaskEventHandlers
|
||||||
|
|
||||||
private void RegisterContractActivationTrigger()
|
private void RegisterContractActivationTrigger()
|
||||||
{
|
{
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TaskManager.TopTask;
|
||||||
|
|
||||||
// Ensure the contract has been registered successfully
|
// Ensure the contract has been registered successfully
|
||||||
if (topTask.ContainsParam(SystemTaskParams.PARAM_CONTRACT))
|
if (topTask.ContainsParam(SystemTaskParams.PARAM_CONTRACT))
|
||||||
|
@ -94,7 +92,7 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.TaskEventHandlers
|
||||||
|
|
||||||
private void ActivatePaymentSystemTriggers()
|
private void ActivatePaymentSystemTriggers()
|
||||||
{
|
{
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TaskManager.TopTask;
|
||||||
|
|
||||||
CustomerPayment payment = (CustomerPayment)topTask.GetParamValue(SystemTaskParams.PARAM_PAYMENT);
|
CustomerPayment payment = (CustomerPayment)topTask.GetParamValue(SystemTaskParams.PARAM_PAYMENT);
|
||||||
Contract contract = (Contract)topTask.GetParamValue(SystemTaskParams.PARAM_CONTRACT);
|
Contract contract = (Contract)topTask.GetParamValue(SystemTaskParams.PARAM_CONTRACT);
|
||||||
|
|
|
@ -617,7 +617,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TaskManager.TopTask;
|
||||||
|
|
||||||
topTask.ItemId = userId;
|
topTask.ItemId = userId;
|
||||||
topTask.UpdateParamValue("SendLetter", sendLetter);
|
topTask.UpdateParamValue("SendLetter", sendLetter);
|
||||||
|
@ -722,7 +722,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
if (homeId < 0)
|
if (homeId < 0)
|
||||||
result.Result = homeId;
|
result.Result = homeId;
|
||||||
|
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TaskManager.TopTask;
|
||||||
|
|
||||||
topTask.ItemId = userId;
|
topTask.ItemId = userId;
|
||||||
topTask.UpdateParamValue("Signup", signup);
|
topTask.UpdateParamValue("Signup", signup);
|
||||||
|
|
|
@ -342,7 +342,8 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TaskManager.TopTask;
|
||||||
|
|
||||||
topTask.IndicatorCurrent = topTask.IndicatorMaximum;
|
topTask.IndicatorCurrent = topTask.IndicatorMaximum;
|
||||||
|
|
||||||
TaskController.UpdateTask(topTask);
|
TaskController.UpdateTask(topTask);
|
||||||
|
|
|
@ -46,7 +46,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
// - BACKUP_NAME
|
// - BACKUP_NAME
|
||||||
// - ZIP_BACKUP
|
// - ZIP_BACKUP
|
||||||
|
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TaskManager.TopTask;
|
||||||
|
|
||||||
string databaseGroup = (string)topTask.GetParamValue("DATABASE_GROUP");
|
string databaseGroup = (string)topTask.GetParamValue("DATABASE_GROUP");
|
||||||
string databaseName = (string)topTask.GetParamValue("DATABASE_NAME");
|
string databaseName = (string)topTask.GetParamValue("DATABASE_NAME");
|
||||||
|
|
|
@ -54,7 +54,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
string storeServerFolder;
|
string storeServerFolder;
|
||||||
bool deleteTempBackup;
|
bool deleteTempBackup;
|
||||||
|
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TaskManager.TopTask;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
|
@ -45,10 +45,8 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
public void CalculateDiskspace()
|
public void CalculateDiskspace()
|
||||||
{
|
{
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
|
||||||
|
|
||||||
// get all space organizations recursively
|
// get all space organizations recursively
|
||||||
List<Organization> items = ExchangeServerController.GetExchangeOrganizations(topTask.PackageId, true);
|
List<Organization> items = ExchangeServerController.GetExchangeOrganizations(TaskManager.TopTask.PackageId, true);
|
||||||
|
|
||||||
foreach (Organization item in items)
|
foreach (Organization item in items)
|
||||||
{
|
{
|
||||||
|
|
|
@ -50,10 +50,8 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
public void CalculateBandwidth()
|
public void CalculateBandwidth()
|
||||||
{
|
{
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
|
||||||
|
|
||||||
// get all owned packages
|
// get all owned packages
|
||||||
List<PackageInfo> packages = PackageController.GetPackagePackages(topTask.PackageId, true);
|
List<PackageInfo> packages = PackageController.GetPackagePackages(TaskManager.TopTask.PackageId, true);
|
||||||
TaskManager.Write("Packages to calculate: " + packages.Count.ToString());
|
TaskManager.Write("Packages to calculate: " + packages.Count.ToString());
|
||||||
|
|
||||||
foreach (PackageInfo package in packages)
|
foreach (PackageInfo package in packages)
|
||||||
|
|
|
@ -51,10 +51,8 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
public void CalculateDiskspace()
|
public void CalculateDiskspace()
|
||||||
{
|
{
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
|
||||||
|
|
||||||
// get all owned packages
|
// get all owned packages
|
||||||
List<PackageInfo> packages = PackageController.GetPackagePackages(topTask.PackageId, true);
|
List<PackageInfo> packages = PackageController.GetPackagePackages(TaskManager.TopTask.PackageId, true);
|
||||||
TaskManager.Write("Packages to calculate: " + packages.Count.ToString());
|
TaskManager.Write("Packages to calculate: " + packages.Count.ToString());
|
||||||
|
|
||||||
foreach (PackageInfo package in packages)
|
foreach (PackageInfo package in packages)
|
||||||
|
|
|
@ -57,7 +57,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
// - MAIL_SUBJECT
|
// - MAIL_SUBJECT
|
||||||
// - MAIL_BODY
|
// - MAIL_BODY
|
||||||
|
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TaskManager.TopTask;
|
||||||
|
|
||||||
// get input parameters
|
// get input parameters
|
||||||
string url = (string)topTask.GetParamValue("URL");
|
string url = (string)topTask.GetParamValue("URL");
|
||||||
|
@ -128,7 +128,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
private void SendMailMessage(string url, string message, string content)
|
private void SendMailMessage(string url, string message, string content)
|
||||||
{
|
{
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TaskManager.TopTask;
|
||||||
|
|
||||||
// input parameters
|
// input parameters
|
||||||
string mailFrom = (string)topTask.GetParamValue("MAIL_FROM");
|
string mailFrom = (string)topTask.GetParamValue("MAIL_FROM");
|
||||||
|
|
|
@ -46,7 +46,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
// - FTP_PASSWORD
|
// - FTP_PASSWORD
|
||||||
// - FTP_FOLDER
|
// - FTP_FOLDER
|
||||||
|
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TaskManager.TopTask;
|
||||||
|
|
||||||
// get input parameters
|
// get input parameters
|
||||||
string filePath = (string)topTask.GetParamValue("FILE_PATH");
|
string filePath = (string)topTask.GetParamValue("FILE_PATH");
|
||||||
|
|
|
@ -51,7 +51,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TaskManager.TopTask;
|
||||||
|
|
||||||
bool isExchange = Utils.ParseBool(topTask.GetParamValue(EXCHANGE_REPORT), false);
|
bool isExchange = Utils.ParseBool(topTask.GetParamValue(EXCHANGE_REPORT), false);
|
||||||
bool isSharePoint = Utils.ParseBool(topTask.GetParamValue(SHAREPOINT_REPORT), false);
|
bool isSharePoint = Utils.ParseBool(topTask.GetParamValue(SHAREPOINT_REPORT), false);
|
||||||
|
|
|
@ -44,7 +44,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
// - DISKSPACE_OVERUSED
|
// - DISKSPACE_OVERUSED
|
||||||
// - BANDWIDTH_OVERUSED
|
// - BANDWIDTH_OVERUSED
|
||||||
|
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TaskManager.TopTask;
|
||||||
|
|
||||||
// get the list of all packages
|
// get the list of all packages
|
||||||
List<PackageInfo> packages = PackageController.GetPackagePackages(topTask.PackageId, false);
|
List<PackageInfo> packages = PackageController.GetPackagePackages(topTask.PackageId, false);
|
||||||
|
|
|
@ -42,7 +42,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
// - SERVER_NAME
|
// - SERVER_NAME
|
||||||
// - EXECUTABLE_PATH
|
// - EXECUTABLE_PATH
|
||||||
|
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TaskManager.TopTask;
|
||||||
|
|
||||||
// get input parameters
|
// get input parameters
|
||||||
string serverName = (string)topTask.GetParamValue("SERVER_NAME");
|
string serverName = (string)topTask.GetParamValue("SERVER_NAME");
|
||||||
|
|
|
@ -42,7 +42,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
// - MAIL_SUBJECT
|
// - MAIL_SUBJECT
|
||||||
// - MAIL_BODY
|
// - MAIL_BODY
|
||||||
|
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TaskManager.TopTask;
|
||||||
|
|
||||||
// get input parameters
|
// get input parameters
|
||||||
string mailFrom = (string)topTask.GetParamValue("MAIL_FROM");
|
string mailFrom = (string)topTask.GetParamValue("MAIL_FROM");
|
||||||
|
|
|
@ -43,7 +43,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
// - DISKSPACE_OVERUSED
|
// - DISKSPACE_OVERUSED
|
||||||
// - BANDWIDTH_OVERUSED
|
// - BANDWIDTH_OVERUSED
|
||||||
|
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TaskManager.TopTask;
|
||||||
|
|
||||||
// get the list of all packages
|
// get the list of all packages
|
||||||
List<PackageInfo> packages = PackageController.GetPackagePackages(topTask.PackageId, false);
|
List<PackageInfo> packages = PackageController.GetPackagePackages(topTask.PackageId, false);
|
||||||
|
|
|
@ -40,7 +40,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
// - FOLDER
|
// - FOLDER
|
||||||
// - ZIP_FILE
|
// - ZIP_FILE
|
||||||
|
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TaskManager.TopTask;
|
||||||
|
|
||||||
// get input parameters
|
// get input parameters
|
||||||
string filesList = (string)topTask.GetParamValue("FOLDER");
|
string filesList = (string)topTask.GetParamValue("FOLDER");
|
||||||
|
|
|
@ -115,22 +115,15 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
var tasks = TaskController.GetProcessTasks(BackgroundTaskStatus.Starting);
|
var tasks = TaskController.GetProcessTasks(BackgroundTaskStatus.Starting);
|
||||||
foreach (var task in tasks)
|
foreach (var task in tasks)
|
||||||
{
|
{
|
||||||
StartManualTask(task);
|
new Thread(() => RunBackgroundTask(task)) {Priority = ThreadPriority.Highest}.Start();
|
||||||
}
|
}
|
||||||
tasks = TaskController.GetProcessTasks(BackgroundTaskStatus.Stopping);
|
tasks = TaskController.GetProcessTasks(BackgroundTaskStatus.Stopping);
|
||||||
foreach (var task in tasks)
|
foreach (var task in tasks)
|
||||||
{
|
{
|
||||||
TaskManager.StopTask(task.TaskId);
|
TaskManager.StopTask(task);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private static void StartManualTask(BackgroundTask backgroundTask)
|
|
||||||
{
|
|
||||||
new Thread(() => RunBackgroundTask(backgroundTask)) { Priority = ThreadPriority.Highest }.Start();
|
|
||||||
|
|
||||||
backgroundTask.Status = BackgroundTaskStatus.Run;
|
|
||||||
|
|
||||||
TaskController.UpdateTask(backgroundTask);
|
|
||||||
}
|
|
||||||
private static void RunBackgroundTask(BackgroundTask backgroundTask)
|
private static void RunBackgroundTask(BackgroundTask backgroundTask)
|
||||||
{
|
{
|
||||||
UserInfo user = PackageController.GetPackageOwner(backgroundTask.PackageId);
|
UserInfo user = PackageController.GetPackageOwner(backgroundTask.PackageId);
|
||||||
|
@ -138,13 +131,18 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
SecurityContext.SetThreadPrincipal(user.UserId);
|
SecurityContext.SetThreadPrincipal(user.UserId);
|
||||||
|
|
||||||
var schedule = SchedulerController.GetScheduleComplete(backgroundTask.ScheduleId);
|
var schedule = SchedulerController.GetScheduleComplete(backgroundTask.ScheduleId);
|
||||||
|
|
||||||
TaskManager.StartTask(backgroundTask.Source, backgroundTask.TaskName, backgroundTask.ItemName, backgroundTask.ItemId, backgroundTask.ScheduleId, backgroundTask.PackageId, backgroundTask.MaximumExecutionTime, backgroundTask.Params);
|
backgroundTask.Guid = TaskManager.Guid;
|
||||||
|
backgroundTask.Status = BackgroundTaskStatus.Run;
|
||||||
|
|
||||||
|
TaskController.UpdateTask(backgroundTask);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var objTask = (SchedulerTask)Activator.CreateInstance(Type.GetType(schedule.Task.TaskType));
|
var objTask = (SchedulerTask)Activator.CreateInstance(Type.GetType(schedule.Task.TaskType));
|
||||||
|
|
||||||
objTask.DoWork();
|
objTask.DoWork();
|
||||||
|
|
||||||
Thread.Sleep(100000);
|
Thread.Sleep(100000);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
|
|
@ -55,12 +55,6 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
DataProvider.GetScheduleTask(SecurityContext.User.UserId, taskId));
|
DataProvider.GetScheduleTask(SecurityContext.User.UserId, taskId));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<ScheduleInfo> GetRunningSchedules()
|
|
||||||
{
|
|
||||||
return ObjectUtils.CreateListFromDataReader<ScheduleInfo>(
|
|
||||||
DataProvider.GetRunningSchedules(SecurityContext.User.UserId));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static DataSet GetSchedules(int packageId)
|
public static DataSet GetSchedules(int packageId)
|
||||||
{
|
{
|
||||||
DataSet ds = DataProvider.GetSchedules(SecurityContext.User.UserId, packageId);
|
DataSet ds = DataProvider.GetSchedules(SecurityContext.User.UserId, packageId);
|
||||||
|
@ -170,6 +164,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
prm => new BackgroundTaskParameter(prm.ParameterId, prm.ParameterValue)).ToList();
|
prm => new BackgroundTaskParameter(prm.ParameterId, prm.ParameterValue)).ToList();
|
||||||
|
|
||||||
var backgroundTask = new BackgroundTask(
|
var backgroundTask = new BackgroundTask(
|
||||||
|
Guid.NewGuid(),
|
||||||
schedule.ScheduleInfo.TaskId,
|
schedule.ScheduleInfo.TaskId,
|
||||||
SecurityContext.User.UserId,
|
SecurityContext.User.UserId,
|
||||||
SecurityContext.User.IsPeer
|
SecurityContext.User.IsPeer
|
||||||
|
@ -197,22 +192,12 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
if (schedule == null)
|
if (schedule == null)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
var parameters = schedule.ScheduleInfo.Parameters.Select(
|
foreach (BackgroundTask task in TaskController.GetScheduleTasks(scheduleId))
|
||||||
prm => new BackgroundTaskParameter(prm.ParameterId, prm.ParameterValue)).ToList();
|
{
|
||||||
|
task.Status = BackgroundTaskStatus.Stopping;
|
||||||
var backgroundTask = new BackgroundTask(
|
|
||||||
schedule.ScheduleInfo.TaskId,
|
TaskController.UpdateTask(task);
|
||||||
SecurityContext.User.UserId,
|
}
|
||||||
SecurityContext.User.IsPeer
|
|
||||||
? SecurityContext.User.OwnerId
|
|
||||||
: SecurityContext.User.UserId, "SCHEDULER", "STOP_SCHEDULE",
|
|
||||||
schedule.ScheduleInfo.ScheduleName,
|
|
||||||
schedule.ScheduleInfo.ScheduleId,
|
|
||||||
schedule.ScheduleInfo.ScheduleId,
|
|
||||||
schedule.ScheduleInfo.PackageId,
|
|
||||||
schedule.ScheduleInfo.MaxExecutionTime, parameters) { Status = BackgroundTaskStatus.Stopping };
|
|
||||||
|
|
||||||
TaskController.AddTask(backgroundTask);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
@ -338,7 +323,7 @@ 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.LastFinish, schedule.NextRun, schedule.Enabled, schedule.PriorityId,
|
schedule.LastRun, 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
|
||||||
|
|
|
@ -40,7 +40,7 @@ namespace WebsitePanel.EnterpriseServer.Tasks
|
||||||
|
|
||||||
public override void OnComplete()
|
public override void OnComplete()
|
||||||
{
|
{
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TaskManager.TopTask;
|
||||||
|
|
||||||
if (!TaskManager.HasErrors(topTask))
|
if (!TaskManager.HasErrors(topTask))
|
||||||
{
|
{
|
||||||
|
@ -78,7 +78,7 @@ namespace WebsitePanel.EnterpriseServer.Tasks
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TaskManager.TopTask;
|
||||||
|
|
||||||
bool sendLetter = Utils.ParseBool(topTask.GetParamValue("SendLetter"), false);
|
bool sendLetter = Utils.ParseBool(topTask.GetParamValue("SendLetter"), false);
|
||||||
|
|
||||||
|
@ -98,7 +98,7 @@ namespace WebsitePanel.EnterpriseServer.Tasks
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TaskManager.TopTask;
|
||||||
|
|
||||||
int userId = Utils.ParseInt(topTask.GetParamValue("UserId").ToString(), 0);
|
int userId = Utils.ParseInt(topTask.GetParamValue("UserId").ToString(), 0);
|
||||||
bool sendLetter = Utils.ParseBool(topTask.GetParamValue("SendLetter"), false);
|
bool sendLetter = Utils.ParseBool(topTask.GetParamValue("SendLetter"), false);
|
||||||
|
@ -125,7 +125,7 @@ namespace WebsitePanel.EnterpriseServer.Tasks
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TaskManager.TopTask;
|
||||||
|
|
||||||
bool sendLetter = Utils.ParseBool(topTask.GetParamValue("SendLetter"), false);
|
bool sendLetter = Utils.ParseBool(topTask.GetParamValue("SendLetter"), false);
|
||||||
|
|
||||||
|
|
|
@ -15,32 +15,39 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
BackgroundTask task = ObjectUtils.FillObjectFromDataReader<BackgroundTask>(
|
BackgroundTask task = ObjectUtils.FillObjectFromDataReader<BackgroundTask>(
|
||||||
DataProvider.GetBackgroundTask(SecurityContext.User.UserId, taskId));
|
DataProvider.GetBackgroundTask(SecurityContext.User.UserId, taskId));
|
||||||
|
|
||||||
if (task == null)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
task.Params = GetTaskParams(task.Id);
|
task.Params = GetTaskParams(task.Id);
|
||||||
|
|
||||||
return task;
|
return task;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static List<BackgroundTask> GetScheduleTasks(int scheduleId)
|
||||||
|
{
|
||||||
|
return ObjectUtils.CreateListFromDataReader<BackgroundTask>(
|
||||||
|
DataProvider.GetScheduleBackgroundTasks(SecurityContext.User.UserId, scheduleId));
|
||||||
|
}
|
||||||
|
|
||||||
public static List<BackgroundTask> GetTasks()
|
public static List<BackgroundTask> GetTasks()
|
||||||
{
|
{
|
||||||
return ObjectUtils.CreateListFromDataReader<BackgroundTask>(
|
return ObjectUtils.CreateListFromDataReader<BackgroundTask>(
|
||||||
DataProvider.GetBackgroundTasks(SecurityContext.User.UserId));
|
DataProvider.GetBackgroundTasks(SecurityContext.User.UserId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static List<BackgroundTask> GetTasks(Guid guid)
|
||||||
|
{
|
||||||
|
return ObjectUtils.CreateListFromDataReader<BackgroundTask>(
|
||||||
|
DataProvider.GetBackgroundTasks(SecurityContext.User.UserId, guid));
|
||||||
|
}
|
||||||
|
|
||||||
public static List<BackgroundTask> GetProcessTasks(BackgroundTaskStatus status)
|
public static List<BackgroundTask> GetProcessTasks(BackgroundTaskStatus status)
|
||||||
{
|
{
|
||||||
return ObjectUtils.CreateListFromDataReader<BackgroundTask>(
|
return ObjectUtils.CreateListFromDataReader<BackgroundTask>(
|
||||||
DataProvider.GetProcessBackgroundTasks(SecurityContext.User.UserId, status));
|
DataProvider.GetProcessBackgroundTasks(SecurityContext.User.UserId, status));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static BackgroundTask GetTopTask()
|
public static BackgroundTask GetTopTask(Guid guid)
|
||||||
{
|
{
|
||||||
BackgroundTask task = ObjectUtils.FillObjectFromDataReader<BackgroundTask>(
|
BackgroundTask task = ObjectUtils.FillObjectFromDataReader<BackgroundTask>(
|
||||||
DataProvider.GetBackgroundTopTask(SecurityContext.User.UserId));
|
DataProvider.GetBackgroundTopTask(SecurityContext.User.UserId, guid));
|
||||||
|
|
||||||
task.Params = GetTaskParams(task.Id);
|
task.Params = GetTaskParams(task.Id);
|
||||||
|
|
||||||
|
@ -49,7 +56,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
public static void AddTask(BackgroundTask task)
|
public static void AddTask(BackgroundTask task)
|
||||||
{
|
{
|
||||||
int taskId = DataProvider.AddBackgroundTask(task.TaskId, task.ScheduleId, task.PackageId, task.UserId,
|
int taskId = DataProvider.AddBackgroundTask(task.Guid, task.TaskId, task.ScheduleId, task.PackageId, task.UserId,
|
||||||
task.EffectiveUserId, task.TaskName, task.ItemId, task.ItemName,
|
task.EffectiveUserId, task.TaskName, task.ItemId, task.ItemName,
|
||||||
task.StartDate, task.IndicatorCurrent, task.IndicatorMaximum,
|
task.StartDate, task.IndicatorCurrent, task.IndicatorMaximum,
|
||||||
task.MaximumExecutionTime, task.Source, task.Severity, task.Completed,
|
task.MaximumExecutionTime, task.Source, task.Severity, task.Completed,
|
||||||
|
@ -62,14 +69,14 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
public static void UpdateTask(BackgroundTask task)
|
public static void UpdateTask(BackgroundTask task)
|
||||||
{
|
{
|
||||||
DataProvider.UpdateBackgroundTask(task.Id, task.ScheduleId, task.PackageId, task.TaskName, task.ItemId,
|
DataProvider.UpdateBackgroundTask(task.Guid, task.Id, task.ScheduleId, task.PackageId, task.TaskName, task.ItemId,
|
||||||
task.ItemName, task.FinishDate, task.IndicatorCurrent,
|
task.ItemName, task.FinishDate, task.IndicatorCurrent,
|
||||||
task.IndicatorMaximum, task.MaximumExecutionTime, task.Source,
|
task.IndicatorMaximum, task.MaximumExecutionTime, task.Source,
|
||||||
task.Severity, task.Completed, task.NotifyOnComplete, task.Status);
|
task.Severity, task.Completed, task.NotifyOnComplete, task.Status);
|
||||||
|
|
||||||
AddTaskParams(task.Id, task.Params);
|
AddTaskParams(task.Id, task.Params);
|
||||||
|
|
||||||
if (task.Completed || task.Status == BackgroundTaskStatus.Abort)
|
if (task.Completed || task.Status == BackgroundTaskStatus.Abort || task.Status == BackgroundTaskStatus.Stopping)
|
||||||
{
|
{
|
||||||
DeleteTaskStack(task.Id);
|
DeleteTaskStack(task.Id);
|
||||||
}
|
}
|
||||||
|
@ -82,6 +89,11 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
public static void AddTaskParams(int taskId, List<BackgroundTaskParameter> parameters)
|
public static void AddTaskParams(int taskId, List<BackgroundTaskParameter> parameters)
|
||||||
{
|
{
|
||||||
|
if (parameters == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
foreach (BackgroundTaskParameter param in SerializeParams(parameters))
|
foreach (BackgroundTaskParameter param in SerializeParams(parameters))
|
||||||
{
|
{
|
||||||
DataProvider.AddBackgroundTaskParam(taskId, param.Name, param.SerializerValue);
|
DataProvider.AddBackgroundTaskParam(taskId, param.Name, param.SerializerValue);
|
||||||
|
@ -117,14 +129,11 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
private static List<BackgroundTaskParameter> SerializeParams(List<BackgroundTaskParameter> parameters)
|
private static List<BackgroundTaskParameter> SerializeParams(List<BackgroundTaskParameter> parameters)
|
||||||
{
|
{
|
||||||
if (parameters == null)
|
|
||||||
{
|
|
||||||
return new List<BackgroundTaskParameter>();
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (BackgroundTaskParameter param in parameters)
|
foreach (BackgroundTaskParameter param in parameters)
|
||||||
{
|
{
|
||||||
XmlSerializer serializer = new XmlSerializer(param.Value.GetType());
|
param.TypeName = param.Value.GetType().Name;
|
||||||
|
|
||||||
|
XmlSerializer serializer = new XmlSerializer(Type.GetType(param.TypeName));
|
||||||
MemoryStream ms = new MemoryStream();
|
MemoryStream ms = new MemoryStream();
|
||||||
serializer.Serialize(ms, param.Value);
|
serializer.Serialize(ms, param.Value);
|
||||||
|
|
||||||
|
@ -141,7 +150,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
{
|
{
|
||||||
foreach (BackgroundTaskParameter param in parameters)
|
foreach (BackgroundTaskParameter param in parameters)
|
||||||
{
|
{
|
||||||
XmlSerializer deserializer = new XmlSerializer(param.SerializerValue.GetType());
|
XmlSerializer deserializer = new XmlSerializer(Type.GetType(param.TypeName));
|
||||||
StringReader sr = new StringReader(param.SerializerValue);
|
StringReader sr = new StringReader(param.SerializerValue);
|
||||||
|
|
||||||
param.Value = deserializer.Deserialize(sr);
|
param.Value = deserializer.Deserialize(sr);
|
||||||
|
|
|
@ -52,6 +52,20 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
60000, // start from 1 minute
|
60000, // start from 1 minute
|
||||||
60000); // invoke each minute
|
60000); // invoke each minute
|
||||||
|
|
||||||
|
protected static Guid? _Guid;
|
||||||
|
|
||||||
|
public static Guid Guid
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (_Guid == null)
|
||||||
|
{
|
||||||
|
_Guid = Guid.NewGuid();
|
||||||
|
}
|
||||||
|
|
||||||
|
return _Guid.Value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static void StartTask(string source, string taskName)
|
public static void StartTask(string source, string taskName)
|
||||||
{
|
{
|
||||||
|
@ -142,10 +156,10 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
int effectiveUserId = SecurityContext.User.IsPeer ? SecurityContext.User.OwnerId : userId;
|
int effectiveUserId = SecurityContext.User.IsPeer ? SecurityContext.User.OwnerId : userId;
|
||||||
String itemNameStr = itemName != null ? itemName.ToString() : String.Empty;
|
String itemNameStr = itemName != null ? itemName.ToString() : String.Empty;
|
||||||
|
|
||||||
BackgroundTask task = new BackgroundTask(taskId, userId, effectiveUserId, source, taskName, itemNameStr,
|
BackgroundTask task = new BackgroundTask(Guid, taskId, userId, effectiveUserId, source, taskName, itemNameStr,
|
||||||
itemId, scheduleId, packageId, maximumExecutionTime, parameters);
|
itemId, scheduleId, packageId, maximumExecutionTime, parameters);
|
||||||
|
|
||||||
List<BackgroundTask> tasks = TaskController.GetTasks();
|
List<BackgroundTask> tasks = TaskController.GetTasks(Guid);
|
||||||
|
|
||||||
if (tasks.Count > 0)
|
if (tasks.Count > 0)
|
||||||
{
|
{
|
||||||
|
@ -191,10 +205,10 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
// ERROR
|
// ERROR
|
||||||
WriteLogRecord(2, ex.Message, ex.StackTrace);
|
WriteLogRecord(2, ex.Message, ex.StackTrace);
|
||||||
|
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
return new Exception((TopTask != null)
|
||||||
|
? String.Format("Error executing '{0}' task on '{1}' {2}",
|
||||||
return new Exception((topTask != null) ? String.Format("Error executing '{0}' task on '{1}' {2}",
|
TopTask.TaskName, TopTask.ItemName, TopTask.Source)
|
||||||
topTask.TaskName, topTask.ItemName, topTask.Source) : String.Format("Error executing task"), ex);
|
: String.Format("Error executing task"), ex);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void WriteError(Exception ex, string text, params string[] textParameters)
|
public static void WriteError(Exception ex, string text, params string[] textParameters)
|
||||||
|
@ -219,7 +233,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
private static void WriteLogRecord(int severity, string text, string stackTrace, params string[] textParameters)
|
private static void WriteLogRecord(int severity, string text, string stackTrace, params string[] textParameters)
|
||||||
{
|
{
|
||||||
List<BackgroundTask> tasks = TaskController.GetTasks();
|
List<BackgroundTask> tasks = TaskController.GetTasks(Guid);
|
||||||
|
|
||||||
if (tasks.Count > 0)
|
if (tasks.Count > 0)
|
||||||
{
|
{
|
||||||
|
@ -246,12 +260,12 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
public static void CompleteTask()
|
public static void CompleteTask()
|
||||||
{
|
{
|
||||||
List<BackgroundTask> tasks = TaskController.GetTasks();
|
List<BackgroundTask> tasks = TaskController.GetTasks(Guid);
|
||||||
|
|
||||||
if (tasks.Count == 0)
|
if (tasks.Count == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = tasks[tasks.Count - 1];
|
||||||
|
|
||||||
// call event handler
|
// call event handler
|
||||||
CallTaskEventHandler(topTask, true);
|
CallTaskEventHandler(topTask, true);
|
||||||
|
@ -284,7 +298,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
public static void UpdateParam(String name, Object value)
|
public static void UpdateParam(String name, Object value)
|
||||||
{
|
{
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TopTask;
|
||||||
|
|
||||||
if (topTask == null)
|
if (topTask == null)
|
||||||
return;
|
return;
|
||||||
|
@ -298,7 +312,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
{
|
{
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TopTask;
|
||||||
|
|
||||||
if (topTask == null)
|
if (topTask == null)
|
||||||
return;
|
return;
|
||||||
|
@ -313,7 +327,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
{
|
{
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TopTask;
|
||||||
|
|
||||||
if (topTask == null)
|
if (topTask == null)
|
||||||
return;
|
return;
|
||||||
|
@ -326,7 +340,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
public static void UpdateParams(Hashtable parameters)
|
public static void UpdateParams(Hashtable parameters)
|
||||||
{
|
{
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TopTask;
|
||||||
|
|
||||||
if (topTask == null)
|
if (topTask == null)
|
||||||
return;
|
return;
|
||||||
|
@ -393,7 +407,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
static void PurgeCompletedTasks(object obj)
|
static void PurgeCompletedTasks(object obj)
|
||||||
{
|
{
|
||||||
List<BackgroundTask> tasks = TaskController.GetTasks();
|
List<BackgroundTask> tasks = TaskController.GetTasks(Guid);
|
||||||
|
|
||||||
foreach (BackgroundTask task in tasks)
|
foreach (BackgroundTask task in tasks)
|
||||||
{
|
{
|
||||||
|
@ -411,7 +425,13 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
{
|
{
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TopTask;
|
||||||
|
|
||||||
|
if (topTask == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
topTask.IndicatorMaximum = value;
|
topTask.IndicatorMaximum = value;
|
||||||
|
|
||||||
TaskController.UpdateTask(topTask);
|
TaskController.UpdateTask(topTask);
|
||||||
|
@ -422,11 +442,17 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return TaskController.GetTopTask().IndicatorCurrent;
|
return TopTask.IndicatorCurrent;
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TopTask;
|
||||||
|
|
||||||
|
if (topTask == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
topTask.IndicatorCurrent = value;
|
topTask.IndicatorCurrent = value;
|
||||||
|
|
||||||
TaskController.UpdateTask(topTask);
|
TaskController.UpdateTask(topTask);
|
||||||
|
@ -437,11 +463,17 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return TaskController.GetTopTask().MaximumExecutionTime;
|
return TopTask.MaximumExecutionTime;
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TopTask;
|
||||||
|
|
||||||
|
if (topTask == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
topTask.MaximumExecutionTime = value;
|
topTask.MaximumExecutionTime = value;
|
||||||
|
|
||||||
TaskController.UpdateTask(topTask);
|
TaskController.UpdateTask(topTask);
|
||||||
|
@ -453,6 +485,11 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
return task.Severity == 2;
|
return task.Severity == 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static BackgroundTask TopTask
|
||||||
|
{
|
||||||
|
get { return TaskController.GetTopTask(Guid); }
|
||||||
|
}
|
||||||
|
|
||||||
public static BackgroundTask GetTask(string taskId)
|
public static BackgroundTask GetTask(string taskId)
|
||||||
{
|
{
|
||||||
BackgroundTask task = TaskController.GetTask(taskId);
|
BackgroundTask task = TaskController.GetTask(taskId);
|
||||||
|
|
|
@ -448,7 +448,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
return BusinessErrorCodes.ERROR_USER_ALREADY_EXISTS;
|
return BusinessErrorCodes.ERROR_USER_ALREADY_EXISTS;
|
||||||
}
|
}
|
||||||
|
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TaskManager.TopTask;
|
||||||
|
|
||||||
topTask.ItemId = userId;
|
topTask.ItemId = userId;
|
||||||
topTask.UpdateParamValue("SendLetter", sendLetter);
|
topTask.UpdateParamValue("SendLetter", sendLetter);
|
||||||
|
|
|
@ -1760,7 +1760,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TaskManager.TopTask;
|
||||||
topTask.ItemId = machine.Id;
|
topTask.ItemId = machine.Id;
|
||||||
topTask.ItemName = machine.Name;
|
topTask.ItemName = machine.Name;
|
||||||
topTask.PackageId = machine.PackageId;
|
topTask.PackageId = machine.PackageId;
|
||||||
|
|
|
@ -1803,7 +1803,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TaskManager.TopTask;
|
||||||
topTask.ItemId = machine.Id;
|
topTask.ItemId = machine.Id;
|
||||||
topTask.ItemName = machine.Name;
|
topTask.ItemName = machine.Name;
|
||||||
topTask.PackageId = machine.PackageId;
|
topTask.PackageId = machine.PackageId;
|
||||||
|
|
|
@ -101,7 +101,8 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
// get application info
|
// get application info
|
||||||
app = GetApplication(inst.PackageId, inst.ApplicationId);
|
app = GetApplication(inst.PackageId, inst.ApplicationId);
|
||||||
|
|
||||||
BackgroundTask topTask = TaskController.GetTopTask();
|
BackgroundTask topTask = TaskManager.TopTask;
|
||||||
|
|
||||||
topTask.ItemName = app.Name;
|
topTask.ItemName = app.Name;
|
||||||
|
|
||||||
TaskController.UpdateTask(topTask);
|
TaskController.UpdateTask(topTask);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue