2017-08-10 16 views
1

私はDjangoのCeleryに対応するSwiftを探しています。これは、一定時間ごとに関数を実行できるようにします。サーバ側でn時間ごとに関数を実行する方法は?

私は、サーバー側のSwiftで動作するソリューションが必要です。これは、Foundationのすべてではなく、iOS/Mac用ではないことを意味します。

私はVaporフレームワークを使用しています。

答えて

1

主なオプションは3つあります。サーバーアプリ内で管理タイマーの

(つまり、サーバーを再起動すると、あなたのタイマーをリセットします)あなたは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ジョブは、バイナリ上で蒸気Commandを呼び出すか、保護されたURLルートをcurlでヒットする必要があります。

関連する問題