我正在編寫一個帶角流星的預約安排應用程序。其中一項要求是將文本通知發送給預約的客戶。客戶提供一個手機號碼。但基本上,我想要做的就是在預約時間前的幾分鐘發送一封電子郵件。運行角流星堆,可能是最好的方法來做到這一點?所有的約會信息都保存到mongo數據庫中。使用Angular-Meteor運行計劃任務的最理想方式
回答
您可能會感興趣流星job-collection組(沒有具體到角流星):
的流星持久性和無作業隊列,支持分佈式的工人,可以在任何地方運行。
作業集是一個功能強大且易於使用的作業管理器,專爲Meteor.js設計和構建。
它解決了以下問題(及以上):
- 調度作業在將來運行(和重複),跨服務器持續重啓
- [...]
特別是job.after(someTimeBeforeAppointment)
// Server
var myJobs = JobCollection('myJobQueue');
// Start the myJobs queue running
myJobs.startJobServer();
// Create a Job (e.g. in a Meteor method)
var job = new Job(myJobs, 'jobType', jobData);
// Specify when it can run and save it.
job.after(someTimeBeforeAppointment).save();
// Server (or could be a different server!)
// How jobs should be processed.
myJobs.processJobs('jobType', function (job, done) {
var jobData = job.data;
// Do something… could be asynchronous.
job.done(); // or job.fail();
// Call done when work on this job has finished.
done();
});
pollInterval
可以在processJobs
options中指定。默認是每5秒。
編寫一個節點腳本,用於向運行X分鐘和X + 10分鐘之間約會的每位客戶發送電子郵件。發送郵件後,在mongo的約會上設置一個布爾標誌,這樣它不會被髮送兩次。
運行一個cron,每5分鐘觸發一次。
重疊應該確保沒有任何東西滑過裂縫,並且標誌將防止倍數被髮送。
這將工作。我想我可以寫一些服務器端,爲每一個創建的約會添加一個cron作業。然後該cron將運行一個提供電子郵件地址的腳本。但是你的想法會把它變成一個批處理過程。 – gh0st
您不想動態添加cron,只需編寫一個腳本來檢查需要發送的通知。你還應該指出cron將它的日誌輸出到一個文件,以便你可以監視它的錯誤。 –
- 1. 計劃任務運行
- 2. 計劃任務運行
- 3. 運行myVBS計劃任務
- 4. 通過C#更改計劃任務的「運行方式」字段:
- 5. Django的芹菜 - 運行計劃任務
- 6. Sitecore的計劃任務不運行
- 7. joomla計劃每秒運行的任務
- 8. 計劃的任務運行.exe問題
- 9. 計劃的PowerShell任務,卡住運行
- 10. C#運行使用Windows服務和XML的計劃任務
- 11. 規劃任務的最佳方式?
- 12. 如何在沒有計劃任務的情況下運行計劃任務
- 13. 在運行電源shell腳本的計劃任務中創建計劃任務
- 14. 作爲計劃任務運行Microsoft Access
- 15. 計劃任務已停止運行
- 16. 按計劃任務運行Powershell腳本
- 17. Windows Phone 7計劃任務運行
- 18. Spring 4.3.1計劃任務運行兩次
- 19. Powershell不從計劃任務運行
- 20. 在python中運行計劃任務
- 21. 從ASP.net運行Windows計劃任務
- 22. 最好的方法,使計劃任務與Web應用程序
- 23. 運行具有最高權限的計劃任務
- 24. 處理任務計劃
- 25. 如何使用可執行jar運行彈簧計劃任務
- 26. WebClient計劃任務計劃任務
- 27. 計劃任務以在每月結束時運行。 (Windows Server 2003 - 計劃任務)
- 28. 如何在計劃任務後執行任務x運行y
- 29. 使用計劃任務
- 30. 使用計劃的PowerShell任務運行遠程腳本超時
這很誘人。我一定會進一步研究。 – gh0st
你有這個套餐的經驗嗎? – gh0st