gpt4 book ai didi

swift - 如何在服务器端 swift 每 n 小时执行一次函数?

转载 作者:搜寻专家 更新时间:2023-10-31 22:26:47 25 4
gpt4 key购买 nike

我正在寻找 Django 的 Celery 的 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由 Vapor 贡献者创建的包:

import Jobs
Jobs.add(interval: .hours(1)) {
// task
}

如果您希望该功能在一天中的特定时间运行,而不受服务器正常运行时间的影响,则没有比 cron(或其亲属)更好的选择。您的 cron 作业应该调用 Vapor Command在二进制文件上,或使用 curl 访问 protected URL 路由。

关于swift - 如何在服务器端 swift 每 n 小时执行一次函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45624725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com