Craft CMSのTasks

Craft CMSのTasksを利用して、旧サイトから大量のデータを変換してインポートする処理を実装しようとしていたりします。

TasksはWordPressでいうと"wp_cron"と同じようなもので、サイトへのアクセスをトリガーに処理の実行を開始します。

Craft CMSでは、以下のようなURLでタスクのスケジュールを開始します。
http://craft.domain/actions/pluginName/actionName
(タスクのスケジュール登録方法はコントローラー以外でも可)

簡単な実装であればTaskとControllerとServiceの実装だけで済みます。

実行中は、定義したステップ数を最大値とした円形のプログレス表示がダッシュボードに表示されて、非同期でステップを順次処理していくのですが、プログレス表示は一度エラーにならないと表示されません…。"desc"の部分はTaskクラスで定義したdescriptionが表示されます。


エラーになると、エラーメッセージが表示され、再スケジュールかキャンセルを選択できます(ただし、詳細なエラーメッセージは定義できない)。再スケジュールをすると、ダッシュボードをリロードしたタイミングでプログレス表示がメニューに追加されます。


通常だとタイムアウトになってしまうような処理を分割して処理したい時には便利だと思います。正常終了したときは、一切結果が表示されないので、正常処理時も結果を確認したいような処理はプラグインのコントロールパネル等で実装したほうがよさそうです。
コメント
トラックバック
この記事のトラックバックURL