appengineでTaskQueueを動かした時のリクエストヘッダーの値からリトライ回数とキュー名を取得する
http://id-bluerabbit.appspot.com/taskQueue/addにアクセスされたら下記のコードでTaskQueueをaddするコードを書いた
QueueFactory.getDefaultQueue().add(TaskOptions.Builder.url("/task/run"));
そのTaskQueueが実行された場合のリクエストヘッダーの値は以下の通り
Content-Type:application/x-www-form-urlencoded User-Agent:AppEngine-Google; (+http://code.google.com/appengine) Referer:http://id-bluerabbit.appspot.com/taskQueue/add Host:id-bluerabbit.appspot.com X-AppEngine-QueueName:default X-AppEngine-TaskName:9010321754918027069 X-AppEngine-TaskRetryCount:0 Content-Length:0
TaskQueueでリトライ回数を取得する方法
private String getTaskRetryCount() { return request.getHeader("X-AppEngine-TaskRetryCount"); }
TaskQueueでキュー名を取得する方法
private String getQueueName() { return request.getHeader("X-AppEngine-QueueName"); }
バージョンアップで変わりそうな感じもするけど、とりあえずこれで取れるようだ。
追記
appengineのバージョンが1.2.6になってからコンソール画面でリトライ回数とtask名がみれるようになってますね。
TaskQueueでタスク名を取得する方法
private String getTaskName() { return request.getHeader("X-AppEngine-TaskName"); }
下記の3つはログを出しておいたほうがよさそうです。
- X-AppEngine-QueueName
- X-AppEngine-TaskName
- X-AppEngine-TaskRetryCount