try catch and ...release
ページ
ホーム
Chromeアプリ開発Tips
公開アプリ
Ubuntu
Linuxコマンド
#!/bin/bash
ブロックチェーンと暗号通貨
2016年6月30日木曜日
Meteor: サーバサイドの処理をスケジュール実行する方法
環境: Meteor 1.3.2.4 Meteor開発では[percolatestudio/meteor-synced-cron](https://github.com/percolatestudio/meteor-synced-cron)を使うとサーバサイド処理のスケジュール実行が簡単に実現できます。 以下はそのサンプルです:
まずはプロジェクトにmeteor-synced-cronをインストール: ```$ meteor add percolate:synced-cron``` サーバサイドにコードを仕込む: server/main.js ```javascript import { Meteor } from 'meteor/meteor'; Meteor.startup(() => { SyncedCron.add({ name: 'My Daily Job', schedule: function(parser) { return parser.text('every 5 seconds'); // return parser.text('every 2 hours'); // return parser.text('every 1 day'); }, job: function() { // TODO: any code here... console.log("hello!"); } }); SyncedCron.start(); // SyncedCron.stop(); // remove and stop all jobs // SyncedCron.stop("My Daily Job"); // remove and stop the job referenced by jobName. }); ``` Meteorを起動すると ```every 5 seconds``` つまり5秒毎にサーバサイドログに ```hello!``` が出力されます。 ログ: ``` ... => App running at: http://localhost:3000/ I20160630-08:13:45.605(9) (synced-cron-server.js:63) SyncedCron: Starting "My Daily Job". I20160630-08:13:45.615(9)? hello! I20160630-08:13:45.611(9) (synced-cron-server.js:63) SyncedCron: Finished "My Daily Job". I20160630-08:13:50.639(9) (synced-cron-server.js:63) SyncedCron: Starting "My Daily Job". I20160630-08:13:50.696(9)? hello! I20160630-08:13:50.648(9) (synced-cron-server.js:63) SyncedCron: Finished "My Daily Job". ... ``` ちなみにジョブの実行履歴はmongodbにコレクション名```cronHistory```として保存されています: ``` $ meteor mongo MongoDB shell version: 2.6.7 connecting to: 127.0.0.1:3001/meteor meteor:PRIMARY> db.cronHistory.find() { "_id" : "omW4nbktj493wakrJ", "intendedAt" : ISODate("2016-06-29T23:13:45Z"), "name" : "My Daily Job", "startedAt" : ISODate("2016-06-29T23:13:45.520Z"), "finishedAt" : ISODate("2016-06-29T23:13:45.612Z"), "result" : null } ... ``` 以上。 とてもシンプルで素晴らしいですね。
0 件のコメント:
コメントを投稿
次の投稿
前の投稿
ホーム
モバイル バージョンを表示
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿