[英]How to setup Quartz.NET for scheduling Emails
下載的quartz.NET庫中有兩個解決方案Quartz.server.2008.sln和quartz.2008.sln 。 現在我必須設置定期工作。 數據庫中將有一個表,其中將定義所有時間表(如每月的第一個星期五,每月 5 個,每個星期日的上午 12 點......等)。 我有按計划執行的方法。 現在我如何使用quartz.net 從數據庫中獲取計划並設置執行的方法? 正確的步驟是什么?
我認為您可以創建一個在后台運行的 windows 服務。 您可以從數據庫中讀取scheduleFromDatabase
變量,然后將其傳遞給 Quartz。
這是來自控制台應用程序的一個小示例:
static void Main(string[] args)
{
ISchedulerFactory schedFact = new StdSchedulerFactory();
IScheduler sched = schedFact.GetScheduler();
sched.Start();
JobDetail jobDetail = new JobDetail("myJob", null, typeof(HelloJob));
//read this string from database
string scheduleFromDatabase="0 11 16 ? * FRI,SUN";
CronTrigger trigger = new CronTrigger("trigger1", null, "myJob",
null,scheduleFromDatabase );
trigger.StartTimeUtc = DateTime.UtcNow;
trigger.Name = "myTrigger";
sched.ScheduleJob(jobDetail, trigger);
}
public class HelloJob:IJob
{
public void Execute(JobExecutionContext context)
{
Console.WriteLine(DateTime.Now.ToString());
//Call here your method!
}
}
這可能很有用:
石英文檔似乎假設每個人都知道基礎知識並且只是在尋找細節。
希望下面的步驟以及 Quartz 文檔和示例,您將能夠開始您的項目。
第 1 步:打開 Windows Explorer 到...\Quartz.NET-1.0.3\database\tables 文件夾
第 2 步:執行適用於您的數據庫的腳本
第 3 步:打開 Windows Explorer 到...\Quartz.NET-1.0.3\server\bin\3.5\console 文件夾
第 4 步:創建 class 庫程序集並添加實現 IJob 接口的 class。
第 5 步:編輯quartz.config 文件。 我的在下面。
################################################################################
# Added by Brad Bruce
# please refer to http://quartznet.sourceforge.net/tutorial/lesson_9.html before making changes
################################################################################
quartz.jobStore.type = Quartz.Impl.AdoJobStore.JobStoreTX, Quartz
quartz.jobStore.driverDelegateType = Quartz.Impl.AdoJobStore.OracleDelegate, Quartz
quartz.jobStore.tablePrefix = QRTZ_
quartz.jobStore.dataSource = myDS
quartz.dataSource.myDS.connectionString = Data Source=xe; User Id=quartz; Password=quartz;
quartz.dataSource.myDS.provider = OracleODP-20
quartz.jobStore.useProperties = true
第 6 步:運行控制台服務器並驗證虛擬作業是否正在運行
第 7 步:將控制台項目復制到新項目
第 8 步:修改控制台源以通過 Quartz API 調度作業。 您將能夠重用此項目來安排其他工作。
如果他們只添加一個項目來安排和管理工作,我認為 Quartz.Net 真的會起飛。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.