1
我正在寻找与Django的Celery Swift相对应的函数,它允许函数每执行一段时间就执行一次。如何在服务器端每隔n小时执行一次函数swift?
我需要一个适用于服务器端Swift的解决方案,这意味着并非所有的Foundation都可用,并且不适用于iOS/Mac。
我正在使用Vapor框架。
我正在寻找与Django的Celery Swift相对应的函数,它允许函数每执行一段时间就执行一次。如何在服务器端每隔n小时执行一次函数swift?
我需要一个适用于服务器端Swift的解决方案,这意味着并非所有的Foundation都可用,并且不适用于iOS/Mac。
我正在使用Vapor框架。
您有三个主要选项。
对于服务器应用程序中管理的定时器(即重新启动服务器将重新设置定时器),可以使用Dispatch
:
import Dispatch
let timer = DispatchSource.makeTimerSource()
timer.setEventHandler() {
// task
}
timer.scheduleRepeating(deadline: .now() + .seconds(3600), interval: .seconds(3600), leeway: .seconds(60))
timer.activate()
同样,你可以使用第三方的蒸汽贡献者创建Jobs包:
import Jobs
Jobs.add(interval: .hours(1)) {
// task
}
如果你想要的功能在独立的服务器的正常运行时间的每天的特定时间运行,有没有殴打cron
(或其亲属)。你的cron工作应该在二进制文件上调用一个Vapor Command,或者用curl
来打一个受保护的URL路由。