如何将Quartz.net与F#一起使用
我不能让f#基于 this 。
open System
open Quartz
open Quartz.Impl
let schedulerFactory = StdSchedulerFactory()
let scheduler = schedulerFactory.GetScheduler()
scheduler.Start()
type Job () =
interface IJob with
member x.Execute(context: IJobExecutionContext) =
task{ //
Console.WriteLine(DateTime.Now)
}
let job = JobBuilder.Create<Job>().Build() //Exception Unhandled error!
let trigger =
TriggerBuilder.Create()
.WithSimpleSchedule(fun x ->
x.WithIntervalInSeconds(1).RepeatForever() |> ignore)
.Build()
scheduler.Result.ScheduleJob(job, trigger) |> ignore
Threading.Thread.Sleep(10000000)
Console.ReadKey()|>ignore
它给出了行的运行时错误让Job = JobBuilder.Create&lt; Job&gt;()。build()
system.invalidoperationException:''start不可能在完成的任务上调用。”
我还必须将调度程序.schedulejob更改为schedul.result.schedulejob(..从上面的原始示例中。
I cannot make F# to schedule simple scheduler based on this .
open System
open Quartz
open Quartz.Impl
let schedulerFactory = StdSchedulerFactory()
let scheduler = schedulerFactory.GetScheduler()
scheduler.Start()
type Job () =
interface IJob with
member x.Execute(context: IJobExecutionContext) =
task{ //
Console.WriteLine(DateTime.Now)
}
let job = JobBuilder.Create<Job>().Build() //Exception Unhandled error!
let trigger =
TriggerBuilder.Create()
.WithSimpleSchedule(fun x ->
x.WithIntervalInSeconds(1).RepeatForever() |> ignore)
.Build()
scheduler.Result.ScheduleJob(job, trigger) |> ignore
Threading.Thread.Sleep(10000000)
Console.ReadKey()|>ignore
It gives runtime error for line let job = JobBuilder.Create<Job>().Build()
System.InvalidOperationException: 'Start may not be called on a task that has completed.'
I also have had to change the scheduler.ScheduleJob to the scheduler.Result.ScheduleJob(.. from the original example above.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
基于本特指出的文档,我认为这应该做到,使用
task
builder f#6:输出是类似的:
Based on the documentation that Bent pointed to, I think this should do it, using the
task
builder from F# 6:Output is something like: