自動実行ジョブの実行のさせ方

2014年7月9日 at 17:27

自作のパッケージ(/packagesに作った)のところに、jobs(/packages/tomoac_xxx/jobs)をつくり、そこに実行されたらエラーログにメッセージを出すジョブ(クラス)を作りました。

さて、これを実行させるにはどうすればいいでしょうか?

「管理画面」の「自動実行ジョブ」のところに出てくるのかと思いましたが出てきません。

タグ:

Re: 自動実行ジョブの実行のさせ方

2014年7月9日 at 17:29
たぶん、これと同じです…。
http://concrete5-japan.org/community/forums/development/post-7382/
 

Re: 自動実行ジョブの実行のさせ方

2014年7月9日 at 17:44
ですよねえ。

前に聞いた気がするので、検索したのですが、「自動実行ジョブ」で出てこなかったので、聞いてなかったかなと思ってました。

無事、自動実行時ジョブのところに出てきました。
そこで、実行ボタンを押すと、実行するのが確認できました。

そこで、cronに加えるauth付きのURLをコピペして、wget xxxxxを実行してみましたが、実行されていないようです。
だからcronに加えても実行されません。なにが足らないでしょうか。
 

Re: 自動実行ジョブの実行のさせ方

2014年7月9日 at 17:46
URLにブラウザからアクセスして実行されればcronの問題、実行されなければjobの問題かと思います
 

Re: 自動実行ジョブの実行のさせ方

2014年7月9日 at 17:53
ブラウザに「アクセス拒否」と出てきました。
あれ?
 

Re: 自動実行ジョブの実行のさせ方

2014年7月9日 at 23:07
その後、いろいろ試してみました。

ブラウザや直接コマンドでの実行は「アクセス拒否」となります。おそらく、concrete5の中から実行しないとそうなるんだと思います。

それはそれとして、「自動実行ジョブ」、私が作ったお試しのコードと既存のsitemap.xmlを作るジョブとも共通なのですが「自動実行ジョブ」の画面で実行ボタンを押すと実行され、sitemap.xmlはできるのですが、cronに登録するとsitemap.xmlが作られません。

同じサーバーで動作しているサイトと何が違うのかをいろいろ考えてみたら、推察ですが、ドメイン直下にconcrete5が動作している場合はsitemap.xmlが作られるが、サブフォルダでconcret5が実行されている場合は、実行ボタンではsitemap.xmlが作られるが、cronでは作れないようです。

この辺、もう少し詳しく試したいのですが、どこのコードが実行されてるのか、わかりませんでしょうか。(こんな感じ)
http://xxxxx.tomo.ac/aaaaa/5.6.3.1_ja/concrete5.6.3.1.ja_devel/index.php/tools/required/jobs/run_single?auth=a64bb0ba88fb49a7a8a1953bfb1137a3&jID=6

toolsの下の、requiredはどこなんでしょうか?
 

Re: 自動実行ジョブの実行のさせ方

2014年7月11日 at 8:06
サブディレクトリでも、sitemap.xmlは作られました。

書かれているURLに該当するファイルは concrete/tools/jobs/run_single.php です。
 

Re: Re: 自動実行ジョブの実行のさせ方

2014年7月11日 at 8:54
ありがとうございました。

concrete/tools/jobs/run_single.php で症状がより詳しく確認しでき、「アクセス拒否」のメッセージがなぜでるかがわかりました。

wget "http:// .... run_single?auth=a64bb0ba88fb49a7a8a1953bfb1137a3&jID=10"

cron内で、""(ダブルクオーテーション)を付けてなかったので、authのみ有効で、&job=10が無効になってしまってました。
これによって、「実行ボタン」を押したらうまく実行されるのに、cronに登録するとうまく実行されない原因がわかりました。
 

Re: Re: 自動実行ジョブの実行のさせ方

2014年7月11日 at 9:03
サブディレクトリで作れない件は、実は昨日から再現しなくなりました。
ジョブとは関係ない原因だったのでしょうね。お手数かけました。