PowerSyncで時間指定して同期できるようにする方法
どうもユーキです。
今回は、PowerSyncで時間同期を実行できるようにする方法をまとめました。
こちらの記事でざっくり説明をしているんですが、詳細を書いていきます。
同期は同サーバー内で2段階まで可能
PowerCMSブログ「ステージングサーバー連携機能 初期設定例」
サーバー構成は上記の記事にかいてあるどれかに当てはまると思います。
今回は同一サーバー内にステージング環境、本番公開環境があるもので説明していきます。(例2を参照ください)
また、時間指定公開は10分おきに実行するものとします。
時間指定同期を設定
まずは、マニュアルやこちらの記事を参考に初期設定を完了させてください。
初期設定完了後、今すぐ同期で同期が実行できてることを確認してください。
ここからが本題です。
①PowerCMSブログ「バックグラウンド処理の実行と設定」
②PowerCMSブログ「PowerCMS 4 のタスクとワーカー」
①の記事にあるように時間指定で同期できるようにするには、run-periodic-tasksというスクリプトファイルをcronで定期的に実行するだけです。
②は特定のもののみを実行したい場合に使うことになります。
MTのtoolsというフォルダの中にrun-periodic-tasks, run-tasks, run-worker, run-worker-deamonというスクリプトファイルがあります。
run-periodic-tasksは、ほか3つのスクリプトを実行している感じになります。(多分w)
なので、同期はかけたいけど、記事の時間指定公開、非公開は実行したくない場合は、②のrun-tasksスクリプトで行いたいタスクだけを実行するようにします。
*/10 * * * * cd $MT_HOME && perl tools/run-tasks --tasks=StagingSync
②の記事では、「StagingSync 日時指定されたステージ環境への同期/公開環境への同期処理」と書いてあるので、この指定でcron実行すればうまくいきます。