diff --git a/QuartzNetAPI/Host/Host.csproj b/QuartzNetAPI/Host/Host.csproj
index d9188d1..1779175 100644
--- a/QuartzNetAPI/Host/Host.csproj
+++ b/QuartzNetAPI/Host/Host.csproj
@@ -38,7 +38,8 @@
-
+
+
diff --git a/QuartzNetAPI/Host/Managers/SchedulerCenter.cs b/QuartzNetAPI/Host/Managers/SchedulerCenter.cs
index 784c05c..dcca38f 100644
--- a/QuartzNetAPI/Host/Managers/SchedulerCenter.cs
+++ b/QuartzNetAPI/Host/Managers/SchedulerCenter.cs
@@ -84,6 +84,7 @@ private async Task InitDBTableAsync()
//TODO 其他数据源...
if (driverDelegateType.Equals(typeof(SQLiteDelegate).AssemblyQualifiedName) ||
driverDelegateType.Equals(typeof(MySQLDelegate).AssemblyQualifiedName) ||
+ driverDelegateType.Equals(typeof(SqlServerDelegate).AssemblyQualifiedName) ||
driverDelegateType.Equals(typeof(PostgreSQLDelegate).AssemblyQualifiedName))
{
IRepositorie repositorie = RepositorieFactory.CreateRepositorie(driverDelegateType, dbProvider);
@@ -524,11 +525,11 @@ public async Task> GetAllJobBriefInfoAsync()
jobInfo.JobInfoList.Add(new JobBriefInfo()
{
Name = jobKey.Name,
- LastErrMsg = jobDetail.JobDataMap.GetString(Constant.EXCEPTION),
+ LastErrMsg = jobDetail?.JobDataMap.GetString(Constant.EXCEPTION),
TriggerState = await scheduler.GetTriggerState(triggers.Key),
PreviousFireTime = triggers.GetPreviousFireTimeUtc()?.LocalDateTime,
NextFireTime = triggers.GetNextFireTimeUtc()?.LocalDateTime,
- RunNumber = jobDetail.JobDataMap.GetLong(Constant.RUNNUMBER)
+ RunNumber = jobDetail?.JobDataMap.GetLong(Constant.RUNNUMBER) ?? 0
});
continue;
}
diff --git a/QuartzNetAPI/Host/Repositories/RepositorieFactory.cs b/QuartzNetAPI/Host/Repositories/RepositorieFactory.cs
index d4c2a4f..435a1f5 100644
--- a/QuartzNetAPI/Host/Repositories/RepositorieFactory.cs
+++ b/QuartzNetAPI/Host/Repositories/RepositorieFactory.cs
@@ -24,6 +24,10 @@ public static IRepositorie CreateRepositorie(string driverDelegateType, IDbProvi
{
return new RepositorieOracle(dbProvider);
}
+ else if (driverDelegateType == typeof(SqlServerDelegate).AssemblyQualifiedName)
+ {
+ return new RepositorieSqlServer(dbProvider);
+ }
else
{
return null;
diff --git a/QuartzNetAPI/Host/Repositories/RepositorieSqlServer.cs b/QuartzNetAPI/Host/Repositories/RepositorieSqlServer.cs
new file mode 100644
index 0000000..7c4a45d
--- /dev/null
+++ b/QuartzNetAPI/Host/Repositories/RepositorieSqlServer.cs
@@ -0,0 +1,87 @@
+using Dapper;
+using Microsoft.Data.SqlClient;
+using Newtonsoft.Json.Linq;
+using Quartz.Impl.AdoJobStore.Common;
+using System;
+using System.IO;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Host.Repositories
+{
+ public class RepositorieSqlServer : IRepositorie
+ {
+ private IDbProvider DBProvider { get; }
+ public RepositorieSqlServer(IDbProvider dbProvider)
+ {
+ DBProvider = dbProvider;
+ }
+
+ public async Task InitTable()
+ {
+ using (var connection = new SqlConnection(DBProvider.ConnectionString))
+ {
+ var check_sql = @"SELECT
+ COUNT (1)
+ FROM
+ sys.tables
+ WHERE
+ name IN (
+ 'QRTZ_BLOB_TRIGGERS',
+ 'QRTZ_CALENDARS',
+ 'QRTZ_CRON_TRIGGERS',
+ 'QRTZ_FIRED_TRIGGERS',
+ 'QRTZ_JOB_DETAILS',
+ 'QRTZ_LOCKS',
+ 'QRTZ_PAUSED_TRIGGER_GRPS',
+ 'QRTZ_SCHEDULER_STATE',
+ 'QRTZ_SIMPLE_TRIGGERS',
+ 'QRTZ_SIMPROP_TRIGGERS',
+ 'QRTZ_TRIGGERS'
+ );";
+ var count = await connection.QueryFirstOrDefaultAsync(check_sql);
+ //初始化 建表
+ if (count == 0)
+ {
+ string init_sql = await File.ReadAllTextAsync("Tables/tables_sqlServer.sql");
+ return await connection.ExecuteAsync(init_sql);
+ }
+ }
+ return 0;
+ }
+
+ public async Task RemoveErrLogAsync(string jobGroup, string jobName)
+ {
+ try
+ {
+ using (var connection = new SqlConnection(DBProvider.ConnectionString))
+ {
+ string sql = $@"SELECT
+ JOB_DATA
+ FROM
+ QRTZ_JOB_DETAILS
+ WHERE
+ JOB_NAME = @jobName
+ AND JOB_GROUP = @jobGroup";
+
+ var byteArray = await connection.ExecuteScalarAsync(sql, new { jobName, jobGroup });
+ var jsonStr = Encoding.Default.GetString(byteArray);
+ JObject source = JObject.Parse(jsonStr);
+ source.Remove("Exception");//移除异常日志
+ var modifySql = $@"UPDATE QRTZ_JOB_DETAILS
+ SET JOB_DATA = @jobData
+ WHERE
+ JOB_NAME = @jobName
+ AND JOB_GROUP = @jobGroup";
+ await connection.ExecuteAsync(modifySql, new { jobName, jobGroup, jobData = Encoding.Default.GetBytes(source.ToString()) });
+ }
+
+ return true;
+ }
+ catch (Exception ex)
+ {
+ return false;
+ }
+ }
+ }
+}
diff --git a/QuartzNetAPI/Host/Tables/tables_sqlServer.sql b/QuartzNetAPI/Host/Tables/tables_sqlServer.sql
index d98d0ae..74c28f4 100644
--- a/QuartzNetAPI/Host/Tables/tables_sqlServer.sql
+++ b/QuartzNetAPI/Host/Tables/tables_sqlServer.sql
@@ -1,23 +1,19 @@
--- this script is for SQL Server and Azure SQL
-
-USE [enter_db_name_here]
-GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1)
ALTER TABLE [dbo].[QRTZ_TRIGGERS] DROP CONSTRAINT FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS
-GO
+;
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1)
ALTER TABLE [dbo].[QRTZ_CRON_TRIGGERS] DROP CONSTRAINT FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS
-GO
+;
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1)
ALTER TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] DROP CONSTRAINT FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS
-GO
+;
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_SIMPROP_TRIGGERS_QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1)
ALTER TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] DROP CONSTRAINT FK_QRTZ_SIMPROP_TRIGGERS_QRTZ_TRIGGERS
-GO
+;
IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_QRTZ_JOB_LISTENERS_QRTZ_JOB_DETAILS]') AND parent_object_id = OBJECT_ID(N'[dbo].[QRTZ_JOB_LISTENERS]'))
ALTER TABLE [dbo].[QRTZ_JOB_LISTENERS] DROP CONSTRAINT [FK_QRTZ_JOB_LISTENERS_QRTZ_JOB_DETAILS]
@@ -28,60 +24,60 @@ ALTER TABLE [dbo].[QRTZ_TRIGGER_LISTENERS] DROP CONSTRAINT [FK_QRTZ_TRIGGER_LIST
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_CALENDARS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
DROP TABLE [dbo].[QRTZ_CALENDARS]
-GO
+;
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_CRON_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
DROP TABLE [dbo].[QRTZ_CRON_TRIGGERS]
-GO
+;
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_BLOB_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
DROP TABLE [dbo].[QRTZ_BLOB_TRIGGERS]
-GO
+;
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_FIRED_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
DROP TABLE [dbo].[QRTZ_FIRED_TRIGGERS]
-GO
+;
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_PAUSED_TRIGGER_GRPS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
DROP TABLE [dbo].[QRTZ_PAUSED_TRIGGER_GRPS]
-GO
+;
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[QRTZ_JOB_LISTENERS]') AND type in (N'U'))
DROP TABLE [dbo].[QRTZ_JOB_LISTENERS]
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_SCHEDULER_STATE]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
DROP TABLE [dbo].[QRTZ_SCHEDULER_STATE]
-GO
+;
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_LOCKS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
DROP TABLE [dbo].[QRTZ_LOCKS]
-GO
+;
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[QRTZ_TRIGGER_LISTENERS]') AND type in (N'U'))
DROP TABLE [dbo].[QRTZ_TRIGGER_LISTENERS]
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_JOB_DETAILS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
DROP TABLE [dbo].[QRTZ_JOB_DETAILS]
-GO
+;
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_SIMPLE_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
DROP TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS]
-GO
+;
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_SIMPROP_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
DROP TABLE [dbo].QRTZ_SIMPROP_TRIGGERS
-GO
+;
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
DROP TABLE [dbo].[QRTZ_TRIGGERS]
-GO
+;
CREATE TABLE [dbo].[QRTZ_CALENDARS] (
[SCHED_NAME] [NVARCHAR] (120) NOT NULL ,
[CALENDAR_NAME] [NVARCHAR] (200) NOT NULL ,
[CALENDAR] [VARBINARY](MAX) NOT NULL
)
-GO
+;
CREATE TABLE [dbo].[QRTZ_CRON_TRIGGERS] (
[SCHED_NAME] [NVARCHAR] (120) NOT NULL ,
@@ -90,7 +86,7 @@ CREATE TABLE [dbo].[QRTZ_CRON_TRIGGERS] (
[CRON_EXPRESSION] [NVARCHAR] (120) NOT NULL ,
[TIME_ZONE_ID] [NVARCHAR] (80)
)
-GO
+;
CREATE TABLE [dbo].[QRTZ_FIRED_TRIGGERS] (
[SCHED_NAME] [NVARCHAR] (120) NOT NULL ,
@@ -107,13 +103,13 @@ CREATE TABLE [dbo].[QRTZ_FIRED_TRIGGERS] (
[IS_NONCONCURRENT] BIT NULL ,
[REQUESTS_RECOVERY] BIT NULL
)
-GO
+;
CREATE TABLE [dbo].[QRTZ_PAUSED_TRIGGER_GRPS] (
[SCHED_NAME] [NVARCHAR] (120) NOT NULL ,
[TRIGGER_GROUP] [NVARCHAR] (150) NOT NULL
)
-GO
+;
CREATE TABLE [dbo].[QRTZ_SCHEDULER_STATE] (
[SCHED_NAME] [NVARCHAR] (120) NOT NULL ,
@@ -121,13 +117,13 @@ CREATE TABLE [dbo].[QRTZ_SCHEDULER_STATE] (
[LAST_CHECKIN_TIME] [BIGINT] NOT NULL ,
[CHECKIN_INTERVAL] [BIGINT] NOT NULL
)
-GO
+;
CREATE TABLE [dbo].[QRTZ_LOCKS] (
[SCHED_NAME] [NVARCHAR] (120) NOT NULL ,
[LOCK_NAME] [NVARCHAR] (40) NOT NULL
)
-GO
+;
CREATE TABLE [dbo].[QRTZ_JOB_DETAILS] (
[SCHED_NAME] [NVARCHAR] (120) NOT NULL ,
@@ -141,7 +137,7 @@ CREATE TABLE [dbo].[QRTZ_JOB_DETAILS] (
[REQUESTS_RECOVERY] BIT NOT NULL ,
[JOB_DATA] [VARBINARY](MAX) NULL
)
-GO
+;
CREATE TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] (
[SCHED_NAME] [NVARCHAR] (120) NOT NULL ,
@@ -151,7 +147,7 @@ CREATE TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] (
[REPEAT_INTERVAL] [BIGINT] NOT NULL ,
[TIMES_TRIGGERED] [INTEGER] NOT NULL
)
-GO
+;
CREATE TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] (
[SCHED_NAME] [NVARCHAR] (120) NOT NULL ,
@@ -170,7 +166,7 @@ CREATE TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] (
[BOOL_PROP_2] BIT NULL,
[TIME_ZONE_ID] [NVARCHAR] (80) NULL
)
-GO
+;
CREATE TABLE [dbo].[QRTZ_BLOB_TRIGGERS] (
[SCHED_NAME] [NVARCHAR] (120) NOT NULL ,
@@ -178,7 +174,7 @@ CREATE TABLE [dbo].[QRTZ_BLOB_TRIGGERS] (
[TRIGGER_GROUP] [NVARCHAR] (150) NOT NULL ,
[BLOB_DATA] [VARBINARY](MAX) NULL
)
-GO
+;
CREATE TABLE [dbo].[QRTZ_TRIGGERS] (
[SCHED_NAME] [NVARCHAR] (120) NOT NULL ,
@@ -198,7 +194,7 @@ CREATE TABLE [dbo].[QRTZ_TRIGGERS] (
[MISFIRE_INSTR] [INTEGER] NULL ,
[JOB_DATA] [VARBINARY](MAX) NULL
)
-GO
+;
ALTER TABLE [dbo].[QRTZ_CALENDARS] WITH NOCHECK ADD
CONSTRAINT [PK_QRTZ_CALENDARS] PRIMARY KEY CLUSTERED
@@ -206,7 +202,7 @@ ALTER TABLE [dbo].[QRTZ_CALENDARS] WITH NOCHECK ADD
[SCHED_NAME],
[CALENDAR_NAME]
)
-GO
+;
ALTER TABLE [dbo].[QRTZ_CRON_TRIGGERS] WITH NOCHECK ADD
CONSTRAINT [PK_QRTZ_CRON_TRIGGERS] PRIMARY KEY CLUSTERED
@@ -215,7 +211,7 @@ ALTER TABLE [dbo].[QRTZ_CRON_TRIGGERS] WITH NOCHECK ADD
[TRIGGER_NAME],
[TRIGGER_GROUP]
)
-GO
+;
ALTER TABLE [dbo].[QRTZ_FIRED_TRIGGERS] WITH NOCHECK ADD
CONSTRAINT [PK_QRTZ_FIRED_TRIGGERS] PRIMARY KEY CLUSTERED
@@ -223,7 +219,7 @@ ALTER TABLE [dbo].[QRTZ_FIRED_TRIGGERS] WITH NOCHECK ADD
[SCHED_NAME],
[ENTRY_ID]
)
-GO
+;
ALTER TABLE [dbo].[QRTZ_PAUSED_TRIGGER_GRPS] WITH NOCHECK ADD
CONSTRAINT [PK_QRTZ_PAUSED_TRIGGER_GRPS] PRIMARY KEY CLUSTERED
@@ -231,7 +227,7 @@ ALTER TABLE [dbo].[QRTZ_PAUSED_TRIGGER_GRPS] WITH NOCHECK ADD
[SCHED_NAME],
[TRIGGER_GROUP]
)
-GO
+;
ALTER TABLE [dbo].[QRTZ_SCHEDULER_STATE] WITH NOCHECK ADD
CONSTRAINT [PK_QRTZ_SCHEDULER_STATE] PRIMARY KEY CLUSTERED
@@ -239,7 +235,7 @@ ALTER TABLE [dbo].[QRTZ_SCHEDULER_STATE] WITH NOCHECK ADD
[SCHED_NAME],
[INSTANCE_NAME]
)
-GO
+;
ALTER TABLE [dbo].[QRTZ_LOCKS] WITH NOCHECK ADD
CONSTRAINT [PK_QRTZ_LOCKS] PRIMARY KEY CLUSTERED
@@ -247,7 +243,7 @@ ALTER TABLE [dbo].[QRTZ_LOCKS] WITH NOCHECK ADD
[SCHED_NAME],
[LOCK_NAME]
)
-GO
+;
ALTER TABLE [dbo].[QRTZ_JOB_DETAILS] WITH NOCHECK ADD
CONSTRAINT [PK_QRTZ_JOB_DETAILS] PRIMARY KEY CLUSTERED
@@ -256,7 +252,7 @@ ALTER TABLE [dbo].[QRTZ_JOB_DETAILS] WITH NOCHECK ADD
[JOB_NAME],
[JOB_GROUP]
)
-GO
+;
ALTER TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] WITH NOCHECK ADD
CONSTRAINT [PK_QRTZ_SIMPLE_TRIGGERS] PRIMARY KEY CLUSTERED
@@ -265,7 +261,7 @@ ALTER TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] WITH NOCHECK ADD
[TRIGGER_NAME],
[TRIGGER_GROUP]
)
-GO
+;
ALTER TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] WITH NOCHECK ADD
CONSTRAINT [PK_QRTZ_SIMPROP_TRIGGERS] PRIMARY KEY CLUSTERED
@@ -274,7 +270,7 @@ ALTER TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] WITH NOCHECK ADD
[TRIGGER_NAME],
[TRIGGER_GROUP]
)
-GO
+;
ALTER TABLE [dbo].[QRTZ_TRIGGERS] WITH NOCHECK ADD
CONSTRAINT [PK_QRTZ_TRIGGERS] PRIMARY KEY CLUSTERED
@@ -283,7 +279,7 @@ ALTER TABLE [dbo].[QRTZ_TRIGGERS] WITH NOCHECK ADD
[TRIGGER_NAME],
[TRIGGER_GROUP]
)
-GO
+;
ALTER TABLE [dbo].QRTZ_BLOB_TRIGGERS WITH NOCHECK ADD
CONSTRAINT [PK_QRTZ_BLOB_TRIGGERS] PRIMARY KEY CLUSTERED
@@ -292,7 +288,7 @@ ALTER TABLE [dbo].QRTZ_BLOB_TRIGGERS WITH NOCHECK ADD
[TRIGGER_NAME],
[TRIGGER_GROUP]
)
-GO
+;
ALTER TABLE [dbo].[QRTZ_CRON_TRIGGERS] ADD
CONSTRAINT [FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS] FOREIGN KEY
@@ -305,7 +301,7 @@ ALTER TABLE [dbo].[QRTZ_CRON_TRIGGERS] ADD
[TRIGGER_NAME],
[TRIGGER_GROUP]
) ON DELETE CASCADE
-GO
+;
ALTER TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] ADD
CONSTRAINT [FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS] FOREIGN KEY
@@ -318,7 +314,7 @@ ALTER TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] ADD
[TRIGGER_NAME],
[TRIGGER_GROUP]
) ON DELETE CASCADE
-GO
+;
ALTER TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] ADD
CONSTRAINT [FK_QRTZ_SIMPROP_TRIGGERS_QRTZ_TRIGGERS] FOREIGN KEY
@@ -331,7 +327,7 @@ ALTER TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] ADD
[TRIGGER_NAME],
[TRIGGER_GROUP]
) ON DELETE CASCADE
-GO
+;
ALTER TABLE [dbo].[QRTZ_TRIGGERS] ADD
CONSTRAINT [FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS] FOREIGN KEY
@@ -344,7 +340,7 @@ ALTER TABLE [dbo].[QRTZ_TRIGGERS] ADD
[JOB_NAME],
[JOB_GROUP]
)
-GO
+;
CREATE INDEX IDX_QRTZ_T_J ON QRTZ_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP)
CREATE INDEX IDX_QRTZ_T_JG ON QRTZ_TRIGGERS(SCHED_NAME,JOB_GROUP)
@@ -365,4 +361,4 @@ CREATE INDEX IDX_QRTZ_FT_J_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROU
CREATE INDEX IDX_QRTZ_FT_JG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_GROUP)
CREATE INDEX IDX_QRTZ_FT_T_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
CREATE INDEX IDX_QRTZ_FT_TG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_GROUP)
-GO
+;
diff --git a/QuartzNetAPI/Host/appsettings.json b/QuartzNetAPI/Host/appsettings.json
index 234cc0b..29571c2 100644
--- a/QuartzNetAPI/Host/appsettings.json
+++ b/QuartzNetAPI/Host/appsettings.json
@@ -22,21 +22,22 @@
//数据源配置
//"dbProviderName":"OracleODPManaged",
-//"connectionString": "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=xe)));User Id=system;Password=oracle;";
+//"connectionString": "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=xe)));User Id=system;Password=oracle;"
+// # SqlServer 测试通过
//"dbProviderName":"SqlServer",
-//"connectionString": "Server=localhost;Database=quartznet;User Id={SqlServerUser};Password={SqlServerPassword};";
+//"connectionString": "Server=localhost;Database=quartznet;User Id=SqlServerUser;Password=SqlServerPassword;"
//"dbProviderName":"SQLServerMOT",
//"connectionString": "Server=localhost,1444;Database=quartznet;User Id={SqlServerUser};Password={SqlServerPassword};"
// # MySql 测试通过
//"dbProviderName":"MySql",
-//"connectionString": "Server = localhost; Database = quartznet; Uid = quartznet; Pwd = quartznet";
+//"connectionString": "Server = localhost; Database = quartznet; Uid = quartznet; Pwd = quartznet"
// # Npgsql 测试通过
//"dbProviderName":"Npgsql",
-//"connectionString": "Server=127.0.0.1;Port=5432;Userid=quartznet;Password=quartznet;Pooling=true;MinPoolSize=1;MaxPoolSize=20;Timeout=15;SslMode=Disable;Database=quartznet";
+//"connectionString": "Server=127.0.0.1;Port=5432;Userid=quartznet;Password=quartznet;Pooling=true;MinPoolSize=1;MaxPoolSize=20;Timeout=15;SslMode=Disable;Database=quartznet"
//"dbProviderName":"SQLite",
-//"connectionString": "Data Source=test.db;Version=3;";
+//"connectionString": "Data Source=test.db;Version=3;"
// # SQLite-Microsoft 测试通过
//"dbProviderName":"SQLite-Microsoft",
-//"connectionString": "Data Source=test.db;";
+//"connectionString": "Data Source=test.db;"
//"dbProviderName":"Firebird",
-//"connectionString": "User=SYSDBA;Password=masterkey;Database=/firebird/data/quartz.fdb;DataSource=localhost;Port=3050;Dialect=3;Charset=NONE;Role=;Connection lifetime=15;Pooling=true;MinPoolSize=0;MaxPoolSize=50;Packet Size=8192;ServerType=0;";
+//"connectionString": "User=SYSDBA;Password=masterkey;Database=/firebird/data/quartz.fdb;DataSource=localhost;Port=3050;Dialect=3;Charset=NONE;Role=;Connection lifetime=15;Pooling=true;MinPoolSize=0;MaxPoolSize=50;Packet Size=8192;ServerType=0;"