ご返信ありがとうございます。
ジョブの確認方法やキューを利用する場面など、
理解できました、ありがとうございます。
よーく考えてみたところ、確定ではないのですが、
おそらく原因が特定できました、たぶん、私の凡ミスです(^^;)
今回ジョブを設定したのはテストサーバのテストサイトなので、
ajaxで利用するURLが外からアクセスできないために、
返り値が返却できていない、というだけの話のような気がします。
なので、実際に本番で実装したときに実行してみて、
それで万が一問題がある場合には、コマンドラインでの確認や
キューを利用した実装を検討します。
どうしても、見える範囲で考えてしまって、
詰まったら視野を広げる意識を持たないとダメですね・・・。
でも、勉強になりました、ありがとうございます。
自作ジョブ実行時のajaxの戻り値が戻らず
2020年2月10日 at 17:43
Expressを利用して登録した情報をxml出力するジョブをテスト環境にて作成しました。
※ DOMDocumentでechoして出力しています。returnで("完了しました")
→ ジョブ生成の参考:https://concrete5-japan.org/help/5-7/developer/jobs/creating-a-job/
ジョブをインストールし、管理画面の自動実行ジョブからいざ実行をクリックすると、
xmlファイルそのものは、即出力されているのは確認でき、内容も問題ありませんでした。
しかし、画面上のグレーの点滅が本来なら終了するとグリーンになるはずですが、
点滅が止まりません。
点滅している状態で、リロードすると前回実行と前回結果がきちんと表示され、
DB内のジョブのログも実行ボタンを押したあとに登録・更新されているのも確認しました。
調べてみたところ、ボタンを押した際のajaxの戻りが返ってきていないため、
success時の処理に進まず、点滅が止まらないようです。
コアのjob.phpがその戻り値を生成してreturnするところのようなのですが、
どこに問題があるか現状手詰まりです。
最終的にはcronを使って出力するので、
点滅は関係はないのですが、できれば解決しておきたいと思います。
他に何か足りない部分があるのか、
調べるべき点などご教授いただければ幸いです。
よろしくお願いいたします。
concrete5:8.5.2
php:7.3
xserver
キャッシュはOFF設定。
タグ:
Your post has been saved and will be published after approval by the forum moderator.
Katz Ueno
Re: 自作ジョブ実行時のajaxの戻り値が戻らず
CLI (SSH) から実行してみるといいかもしれません。
$ cd [c5 がインストールされたパス]
$ concrete/bin/concrete5 c5:job [ジョブハンドル]
これでコマンドラインから実行し結果を見ることが出来ます。
ジョブハンドルは、ジョブのファイル名から .php の拡張子を除いたものです。
コマンドラインで正常に実行でき、終了できれば、ブラウザからの処理時間が足りないかもしれません。その時は Queueable Job に変更しないといけないかもです。
Queueable Job とは、大きすぎるとジョブを小分けにして実行するものです。
実は何かエラーが発生していれば、ジョブの実行結果から見ることが出来るかもしれません。
デバッグ設定でメッセージが出力されるようにすることを忘れずに。
よろしくおねがいします。