[功能] 定时任务支持
rcoplo opened this issue · comments
大佬看看这个可行吗 commit
/// 每1分钟获取一次 bot uin
#[scheduler_job(cron = "0 0/1 * * * ?")]
async fn handle_scheduler(c:Arc<Client>) {
let bot_uin = c.bot_uin().await;
println!("{}", bot_uin);
}
/// scheduler
pub fn scheduler() -> SchedulerJob {
scheduler!(
"hello_jobs",
handle_scheduler
)
}
如果可以的话我提一个pr
如果可以的话merge以下master之后进行PR。
如果可以的话merge以下master之后进行PR。
好的
我先尝试改一下你的代码,比如
jobs_scheduler
放在client里面,不需要建立多个。- 让handler返回result,这样用起来方便一起
- 或者在
clientBuilder::build
的时候就执行一些init的动作,而不是推迟到run。
遇到问题我会推送到dev给你看一下
我先尝试改一下你的代码,比如
jobs_scheduler
放在client里面,不需要建立多个。- 让handler返回result,这样用起来方便一起
- 或者在
clientBuilder::build
的时候就执行一些init的动作,而不是推迟到run。遇到问题我会推送到dev给你看一下
好
我把我刚才的想法加了进去,我只改了 proc_qq 没有改 codegen.
jobs_scheduler.start() 这个名字我看你用tokio::spawn
调用,start看起来是启动的意思。我用了一个mutex包裹jobs_scheduler不知道会不会有问题
我的想法是一开始就设置好任务,然后一起启停,
如果按照这个思路改 scheduler
跟module的思路就比较一致了。 codegen也类似
你可以试一下有没有问题或者补充其他的,能用的话我可以提交到master了
我试了一下,当shutdown()
之后,再次start()
就会报错了,JobScheduler
需要重新初始化,添加任务才行
我试了一下,当
shutdown()
之后,再次start()
就会报错了,JobScheduler
需要重新初始化,添加任务才行
我改一下
改好了
没问题了,可以加个Module
和Scheduler
添加的时候的日志吗
调用的时候?我写todo的时候吗?文档还需要改一改
调用的时候?我写todo的时候吗?文档还需要改一改
这种 加了日志好观察模块是否加载.
我把我的定时任务的代码提交到master了。增加了在编译时校验cron是否正确。
builder::build
里面加上tracing::debug
? 如果是的话,你可以pr一下。
贡献者里没有你,应该是rebase merge的问题。我手动又强推了一下,有了。