Я определил задание и триггер в базе данных SQL Server, но не могу загрузить задание или запустить триггер. Мне просто интересно, может ли кто-нибудь помочь мне найти решение этой проблемы. Я уверен, что, должно быть, делаю что-то не так, но просто не могу этого заметить.
Я был повсюду Документация Quartz.NET, но некоторые настройки могут быть неправильно поняты.
Будем благодарны за любую помощь.
Вы можете увидеть некоторые результаты с самого начала. внизу вы можете увидеть сообщение о «добавлении 0 заданий, 0 триггеров»
Using job store 'Quartz.Impl.AdoJobStore.JobStoreTX', supports persistence: True, clustered: True
{"@t":"2024-07-08T14:10:24.3246282Z","@mt":"Using job store 'Quartz.Impl.AdoJobStore.JobStoreTX', supports persistence: True, clustered: True","SourceContext":"Quartz.Impl.StdSchedulerFactory","SFTPService":"SFTPService"}
{"@t":"2024-07-08T14:10:24.3328792Z","@mt":"Adding 0 jobs, 0 triggers.","SourceContext":"Quartz.ContainerConfigurationProcessor","SFTPService":"SFTPService"}
Ниже приведен код запуска, который я реализовал для инициализации Quartz. Он работает в консольном приложении C#.
У меня есть все настройки при запуске и Я не использую никаких настроек в файле appsettings.json.
//-------------------------------------------------------------------------
// Setup Quartz the timer scheduling library
//-------------------------------------------------------------------------
services.AddQuartzHostedService(opt =>
{
opt.WaitForJobsToComplete = true;
});
services.AddQuartz(q=>
{
q.UsePersistentStore(s =>
{
s.UseProperties = true;
s.UseNewtonsoftJsonSerializer();
s.UseSqlServer(sqlServer =>
{
sqlServer.ConnectionString = configuration.GetConnectionString("Quartz") ?? throw new ArgumentNullException("Quartz connection string");
sqlServer.TablePrefix = "QRTZ_";
});
s.UseClustering(c =>
{
c.CheckinInterval = TimeSpan.FromSeconds(10);
c.CheckinMisfireThreshold = TimeSpan.FromSeconds(20);
});
});
});
Я создал несколько заданий в базе данных с помощью этих скриптов:
INSERT INTO QRTZ_JOB_DETAILS
(SCHED_NAME, JOB_NAME, JOB_GROUP, JOB_CLASS_NAME, IS_DURABLE, IS_NONCONCURRENT, IS_UPDATE_DATA, REQUESTS_RECOVERY, JOB_DATA)
VALUES
('SFTPService', 'SFTPDownloadJobName', 'SFTPJobGroup', 'MyCompany.SFTP.WorkerLibrary.SFTPDownloadJob, MyCompany.SFTP.WorkerLibrary', 1, 0, 0, 0, NULL);
INSERT INTO QRTZ_TRIGGERS
(SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP, JOB_NAME, JOB_GROUP, DESCRIPTION, NEXT_FIRE_TIME, PREV_FIRE_TIME, PRIORITY, TRIGGER_STATE, TRIGGER_TYPE, START_TIME, END_TIME, CALENDAR_NAME, MISFIRE_INSTR, JOB_DATA)
VALUES
('SFTPService', 'FrequentTriggerName', 'FrequentTriggerGroup', 'SFTPDownloadJobName', 'SFTPJobGroup', 'Fires every 20 seconds', NULL, NULL, 5, 'WAITING', 'CRON', DATEDIFF(SECOND, '1970-01-01', GETDATE()), NULL, NULL, 0, NULL);
INSERT INTO QRTZ_CRON_TRIGGERS
(SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP, CRON_EXPRESSION, TIME_ZONE_ID)
VALUES
('SFTPService', 'FrequentTriggerName', 'FrequentTriggerGroup', '0/20 * * * * ?', NULL);
DECLARE @jsonData NVARCHAR(MAX) = '{
"SftpHostName": "eu-central-1.sftpcloud.io",
"SftpPortNumber": "22",
"SftpUserName": "*********************",
"SftpPassword": "***********************",
"SftpRemoteDirectory": "/",
"SftpLocalDirectory": "",
"SftpFileNameOrPattern": "test.txt"
}';
DECLARE @jobData VARBINARY(MAX) = CONVERT(VARBINARY(MAX), @jsonData);
UPDATE QRTZ_TRIGGERS
SET JOB_DATA = @jobData
WHERE SCHED_NAME = 'SFTPService'
AND TRIGGER_NAME = 'FrequentTriggerName'
AND TRIGGER_GROUP = 'FrequentTriggerGroup';
Подробнее здесь: https://stackoverflow.com/questions/787 ... r-database
Quartz.NET не загружает какие-либо задания, определенные в базе данных SQL Server ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как получить последнее запланированное время пожара для ежедневного цикла задания Quartz?
Anonymous » » в форуме JAVA - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-