【问题标题】:How to implement Quartz.net Scheduler for simple HelloWorld如何为简单的 HelloWorld 实现 Quartz.net 调度程序
【发布时间】:2012-08-31 11:35:57
【问题描述】:

以下代码产生以下错误:

Imports Quartz
Imports Quartz.Impl

Public Class InsertRssFeedJob
    Implements IJob

    Public Sub Execute(context As JobExecutionContext)
        Dim rssContoller = New RssController()
        rssController.InsertRssFeedItem("")
    End Sub

End Class

错误 1 ​​类“InsertRssFeedJob”必须为接口“Quartz.IJob”实现“Sub Execute(context As IJobExecutionContext)”。 C:\Users\darchual\documents\visual studio 2010\Projects\MyBlog\MyBlog\QuartzScheduler\Class1.vb 5 16 MyBlog

我已经添加了库包引用,可以成功导入Quartz,但是“Implements IJob”下面有一条蓝线,显示上面的错误。我能做些什么?谢谢。

【问题讨论】:

    标签: asp.net-mvc vb.net asp.net-mvc-3 scheduled-tasks quartz-scheduler


    【解决方案1】:

    这就是我使用它的方式(首先创建 scheduleFactory,在不同的类/子中)...

    Dim schedFact As ISchedulerFactory = New StdSchedulerFactory()
    
    ' get a scheduler
    Dim sched As IScheduler = schedFact.GetScheduler()
    sched.Start()
    
    ' construct job info
    Dim jobDetail As New JobDetail(TriggerName, Nothing, GetType(cls_schedule))
    Dim trigger As Trigger = TriggerUtils.MakeDailyTrigger(hour, min)
    
    trigger.StartTimeUtc = DateTime.UtcNow
    trigger.Name = TriggerName
    sched.ScheduleJob(jobDetail, trigger)
    

    我将类名“cls_schedule”传递给JobDetail,然后您可以使用您的类(作为参数传递)来执行实际任务。

    Public Class cls_schedule
        Implements IJob
    
        Public Sub Execute(ByVal context As Quartz.JobExecutionContext) Implements Quartz.IJob.Execute
            Dim jobType As String = context.Trigger.Name
                     ' Your Code Goes here
        End sub
    

    【讨论】:

    • 谢谢,highwingers。我把这两个放在哪里?我以为我应该在 global.asax 的 Application_Start() 中放一些东西。
    • 在 app_code 文件夹中创建两个类,然后一个将具有我上面提供的代码,第二个将与您已有的相同。
    • 上面的代码我在windows应用程序上试过,但是如果它是一个webapp那么你应该把Application_onstart放进去,上面的代码是计划设置(在app_onstart中)。然后作为参数传递给预定工厂的实际类将执行实际操作(无论何时执行作业)。请记住,当您更改计划中的任何内容时,您需要重新启动 IIS,否则您的新更改将不会生效。
    • 还不能测试,但感谢您的帮助。
    【解决方案2】:

    是execute方法上的签名,改成IJobContext就可以解决了。

    【讨论】:

    • 我更改了我认为是签名的内容,但它似乎不起作用。也许我做错了。您能否发布一个示例,以便我们在同一页面上?感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多