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路由。