簡體   English   中英

如何設置 Quartz.NET 來安排電子郵件

[英]How to setup Quartz.NET for scheduling Emails

下載的quartz.NET庫中有兩個解決方案Quartz.server.2008.slnquartz.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.NET 服務器文檔

石英文檔似乎假設每個人都知道基礎知識並且只是在尋找細節。

希望下面的步驟以及 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM