@elysiumjs/ heracles- 工人( )
运行 赫拉克勒斯语Name 在Cloudflare工人上的工作:Cloudflare Quees 承接工作,克龙触发发送预定工作.
安装
bun add @elysiumjs/heracles-workers
使用量
将队列的任务发送到 Cloudflare 队列 CloudflareQueueTransport,并添加 HeraclesWorkersModule 以同样的工人所饮的
import { Application } from '@elysiumjs/core';
import { HeraclesModule } from '@elysiumjs/heracles';
import { CloudflareQueueTransport, HeraclesWorkersModule } from '@elysiumjs/heracles-workers';
import { runtime } from '@elysiumjs/runtime-workers';
@Application.register({
runtime,
modules: [
HeraclesModule.with({
queues: {
emails: {
transport: CloudflareQueueTransport,
transportOptions: { binding: 'EMAILS', deadLetterQueue: 'EMAILS_DLQ' }
}
}
}),
HeraclesWorkersModule,
MailModule
]
})
class App extends Application {}
// wrangler.jsonc
{
"queues": {
"producers": [
{ "binding": "EMAILS", "queue": "emails" },
{ "binding": "EMAILS_DLQ", "queue": "emails-dlq" }
],
"consumers": [{ "queue": "emails" }]
},
"triggers": { "crons": ["0 3 * * *"] }
}
- 完成的工作就快解决了。 失败的工作在完成后被重审
retryDelay它的尝试在其中maxRetries。经过最后一次重试后,它就会被记录下来并被撞倒。 当它的队列transportOptions设置deadLetterQueue装订后,它也被送到那里,因为它是带着一个failure成员(错误,尝试,时间);每个队列都有自己的. 与HeraclesWorkersModule.with({ onDead }),它也交给onDead,无论它的队列. - 晚点安排的工作被延迟
delaySeconds,直到12小时 云花排队允许. - Cloudflare 队列不保留工作状态, 不能取消消息 :
getJobStatus()丢出,取消时会发出警告. - 每根克龙触发符都会发出任务
@Scheduler.job()编辑Scheduler分类,其表达式完全就是触发的表达式,在触发时:排程器会选择用于该勾选的大小写。 时间为UTC. - 没有Heracles任务的信件留给工人的其他队列消费者.