google.appengine.api.taskqueue.taskqueue モジュール

概要

タスクキュー API。

アプリケーションがアプリケーション自体のバックグラウンド作業をキューに入れられるようにします。作業は、キューから push されたタスクを処理する Webhook か、またはキューから手動でタスクを pull するワーカーによって行われます。push キューでは、タスクは ETA の順序(ベスト エフォート)で実行されます。Webhook が失敗した場合、タスクは後で再試行されます。pull キューでは、ワーカーがタスクをリースして処理し、タスクを完了してタスクを削除します。キューは複数存在でき、それぞれ別個のスロットル制御を備えています。

push タスクでは Webhook の URL を直接指定できます。デフォルトの URL スキームも使用でき、タスク名はキューのベースパスからの相対 URL に変換されます。簡単に使用できるデフォルト キューも用意されています。

内容

例外 google.appengine.api.taskqueue.taskqueue.BadTaskStateErrorソース

ベース: google.appengine.api.taskqueue.taskqueue.Error

タスクの状態が、要求したオペレーションに対して正しくありません。

google.appengine.api.taskqueue.taskqueue.BadTransactionState

BadTransactionStateError のエイリアス

例外 google.appengine.api.taskqueue.taskqueue.BadTransactionStateErrorソース

ベース: google.appengine.api.taskqueue.taskqueue.Error

現在のトランザクションの状態では、このオペレーションは許可されません。

例外 google.appengine.api.taskqueue.taskqueue.DatastoreErrorソース

ベース: google.appengine.api.taskqueue.taskqueue.Error

キューへのアクセス中にデータストア エラーが発生しました。

例外 google.appengine.api.taskqueue.taskqueue.DuplicateTaskNameErrorソース

ベース: google.appengine.api.taskqueue.taskqueue.Error

2 つのタスクの名前が同じです。

複数のタスクをバッチ内のキューに追加する場合、複数のタスクに同じ名前を付けることはできません。

例外 google.appengine.api.taskqueue.taskqueue.Errorソース

ベース: exceptions.Exception

このモジュールの例外の基本クラスです。

例外 google.appengine.api.taskqueue.taskqueue.InternalErrorソース

ベース: google.appengine.api.taskqueue.taskqueue.Error

このキューへのアクセス中に内部エラーが発生しました。

問題が引き続き発生する場合は、サポート フォーラムを通して App Engine チームにお問い合わせください。問題の詳細を必ず記載してください。

例外 google.appengine.api.taskqueue.taskqueue.InvalidQueueErrorソース

ベース: google.appengine.api.taskqueue.taskqueue.Error

キューの構成が無効です。

例外 google.appengine.api.taskqueue.taskqueue.InvalidQueueNameErrorソース

ベース: google.appengine.api.taskqueue.taskqueue.InvalidQueueError

キューの名前が無効です。

例外 google.appengine.api.taskqueue.taskqueue.InvalidTaskErrorソース

ベース: google.appengine.api.taskqueue.taskqueue.Error

タスクのパラメータ、ヘッダー、またはメソッドが無効です。

例外 google.appengine.api.taskqueue.taskqueue.InvalidTaskNameErrorソース

ベース: google.appengine.api.taskqueue.taskqueue.InvalidTaskError

タスクの名前が無効です。

例外 google.appengine.api.taskqueue.taskqueue.InvalidUrlErrorソース

ベース: google.appengine.api.taskqueue.taskqueue.InvalidTaskError

タスクに使用された相対 URL が無効です。

例外 google.appengine.api.taskqueue.taskqueue.PermissionDeniedErrorソース

ベース: google.appengine.api.taskqueue.taskqueue.Error

リクエストされたオペレーションはこのアプリで許可されていません。

例外 google.appengine.api.taskqueue.taskqueue.TaskAlreadyExistsErrorソース

ベース: google.appengine.api.taskqueue.taskqueue.InvalidTaskError

このタスクはすでに存在します。タスクはまだ実行されていません。

例外 google.appengine.api.taskqueue.taskqueue.TaskTooLargeErrorソース

ベース: google.appengine.api.taskqueue.taskqueue.InvalidTaskError

タスクのヘッダーとペイロードのサイズが大きすぎます。

例外 google.appengine.api.taskqueue.taskqueue.TombstonedTaskErrorソース

ベース: google.appengine.api.taskqueue.taskqueue.InvalidTaskError

タスクは廃棄されています。

同じ名前のタスクが以前にキュー内で実行されました。名前をキュー内で一意にする必要があります。

例外 google.appengine.api.taskqueue.taskqueue.TooManyTasksErrorソース

ベース: google.appengine.api.taskqueue.taskqueue.Error

1 つの関数呼び出しに存在するタスクが多すぎました。

例外 google.appengine.api.taskqueue.taskqueue.TransientErrorソース

ベース: google.appengine.api.taskqueue.taskqueue.Error

キューへのアクセス中に一時的なエラーが発生しました。しばらくしてからもう一度実行してください。

例外 google.appengine.api.taskqueue.taskqueue.UnknownQueueErrorソース

ベース: google.appengine.api.taskqueue.taskqueue.Error

指定したキューが不明です。

例外 google.appengine.api.taskqueue.taskqueue.InvalidLeaseTimeErrorソース

ベース: google.appengine.api.taskqueue.taskqueue.Error

リース期間が無効です。

例外 google.appengine.api.taskqueue.taskqueue.InvalidMaxTasksErrorソース

ベース: google.appengine.api.taskqueue.taskqueue.Error

lease_tasks でリクエストされた最大タスク数は無効です。

例外 google.appengine.api.taskqueue.taskqueue.InvalidDeadlineErrorソース

ベース: google.appengine.api.taskqueue.taskqueue.Error

lease_tasks でリクエストされた期限は無効です。

例外 google.appengine.api.taskqueue.taskqueue.InvalidQueueModeErrorソース

ベース: google.appengine.api.taskqueue.taskqueue.Error

push キューで pull キュー オペレーションを呼び出したか、pull キューで push キュー オペレーションを呼び出しています。

例外 google.appengine.api.taskqueue.taskqueue.TransactionalRequestTooLargeErrorソース

ベース: google.appengine.api.taskqueue.taskqueue.TaskTooLargeError

このトランザクションの合計サイズ(タスクを含む)が大きすぎます。

例外 google.appengine.api.taskqueue.taskqueue.TaskLeaseExpiredErrorソース

ベース: google.appengine.api.taskqueue.taskqueue.Error

タスクのリースは、すでに期限が切れているため、更新できませんでした。

例外 google.appengine.api.taskqueue.taskqueue.QueuePausedErrorソース

ベース: google.appengine.api.taskqueue.taskqueue.Error

キューは一時停止しており、タスクリースの変更リクエストを処理できません。

例外 google.appengine.api.taskqueue.taskqueue.InvalidEtaErrorソース

ベース: google.appengine.api.taskqueue.taskqueue.InvalidTaskError

タスクの ETA が無効です。

例外 google.appengine.api.taskqueue.taskqueue.InvalidTagErrorソース

ベース: google.appengine.api.taskqueue.taskqueue.Error

指定されたタグは無効です。

クラス google.appengine.api.taskqueue.taskqueue.Queue(name='default')ソース

ベース: object

キューを表します。

Queue クラスは、タスクの App Engine によるオフライン実行を準備するために使用します。

Queue オブジェクトは名前でインスタンス化されます。名前は、システムにより提供されるデフォルトのキュー、またはアプリケーションの queue.yaml 構成ファイルで指定されたユーザー定義のキューに対応する必要があります。対応していれば、Queue オブジェクトを使用して、App Engine によるオフライン実行用の新しいタスク インスタンスを挿入できます。

複数の Queue オブジェクトが、基礎となる同一のシステム キューに対応している場合もあります。ただし、1 つのキューに追加できるタスク オブジェクトは 1 つのみです。

add(task, transactional=False)ソース

タスクまたはタスクのリストをこのキューに追加します。

複数のタスクのリストが指定されている場合、transactionalTrue に設定されていない限り、例外が発生してもタスクがキューに追加されることがあります。例外の発生時にどのタスクが正常に追加されたかを調べるには、Task.was_enqueued プロパティを確認します。

push タスク、つまり pull でないメソッドを含むタスクは、pull モードのキューに追加できません。同様に、pull タスクを push モードのキューに追加することはできません。

TaskAlreadyExistsError または TombstonedTaskError が発生した場合、呼び出し元は、提供されたそれぞれのタスクについて、対応するタスクが正常に追加されたこと、または指定された名前のタスクが過去に正常に追加されたことが保証されます。

パラメータ
  • task - キューに追加されるタスク インスタンスまたはタスク インスタンスのリスト。task がタスク オブジェクトのリストに設定されている場合、すべてのタスクがキューに追加されます。Transactional=True の場合、すべてのタスクが同一のアクティブな Datastore トランザクションに追加されます。キューに追加できないタスクがあると、いずれのタスクもキューに追加されず、Datastore トランザクションは失敗します。transactional=False の場合、キューにタスクを追加できないと例外が発生しますが、他のタスクはキューに追加されます。

  • transactional - True の場合、トランザクション タスクはキューに追加されますが、トランザクションが成功するまでは実行もリースもできません。トランザクションが失敗すると、タスクはキューから削除されます(したがって実行されません)。False の場合、追加されたタスクはすぐに実行できます。包含トランザクションが成功したか失敗したかは無視されます。

戻り値

このメソッドに指定されたタスクまたはタスクのリスト。キューに格納されたタスクには、呼び出し後に有効なキュー名とタスク名が付けられます。これらのタスク オブジェクトはキューに格納されたものとして設定され、再度追加することはできません。

発生
  • BadTaskStateError - タスクがすでにキューに追加されている場合。

  • BadTransactionStateError - transactional 引数が True であるのに、この呼び出しがトランザクションのコンテキスト外で行われている場合。

  • DuplicateTaskNameError - リクエストでタスク名が繰り返されている場合。

  • InvalidTaskNameError - タスク名が指定されていても有効ではない場合。

  • InvalidTaskError - push タスクと pull タスクの両方がタスク リストに存在する場合。

  • InvalidQueueModeError - pull タスクが push モードのキューに追加されている場合、または push タスクが pull モードのキューに追加されている場合。

  • TaskAlreadyExistsError - 指定された名前と同じ名前のタスクが以前にキューに追加されている場合。

  • TombstonedTaskError - 指定された名前と同じ名前のタスクが以前にキューに追加され、削除されている場合。

  • TooManyTasksError - タスクに MAX_TASKS_PER_ADD の数を超えるタスクが含まれている場合。

  • TransactionalRequestTooLargeError - transactional が True で、タスクとそれをサポートするリクエスト データの合計サイズが MAX_TRANSACTIONAL_REQUEST_SIZE_BYTES の割り当てを超えている場合。

  • アプリケーション エラーのエラー サブクラス。

add_async(task, transactional=False, rpc=None)ソース

このキューにタスクまたはタスクのリストを非同期的に追加します。

この関数は、非同期オブジェクトを返す以外は add() と同じです。戻り値に対して get_result() を呼び出すことによって、その呼び出しの中で処理をブロックできます。

パラメータ
  • task - キューに追加されるタスク インスタンスまたはタスク インスタンスのリスト。task がタスク オブジェクトのリストである場合、すべてのタスクがキューに追加されます。Transactional=True の場合、すべてのタスクが同一のアクティブな Datastore トランザクションに追加されます。キューに追加できないタスクがあると、いずれのタスクもキューに追加されず、Datastore トランザクションは失敗します。transactional=False の場合、キューにタスクを追加できないと例外が発生しますが、他のタスクはキューに追加されます。

  • transactional - True の場合、トランザクション タスクはキューに追加されますが、トランザクションが成功するまでは実行もリースもできません。トランザクションが失敗すると、タスクはキューから削除されます(したがって実行されません)。False の場合、追加されたタスクはすぐに実行できます。包含トランザクションが成功したか失敗したかは無視されます。

  • rpc - オプションの UserRPC オブジェクト。

戻り値

UserRPC オブジェクト。get_result() を呼び出して RPC を完了し、このメソッドに指定されたタスクまたはタスクのリストを取得します。キューに格納されたタスクには、呼び出し後に有効なキュー名とタスク名が付けられます。これらのタスク オブジェクトはキューに格納されたものとして設定され、再度追加することはできません。

発生
  • BadTaskStateError - タスクがすでにキューに追加されている場合。

  • BadTransactionStateError - transactional 引数が True であるのに、この呼び出しがトランザクションのコンテキスト外で行われている場合。

  • DuplicateTaskNameError - リクエストでタスク名が繰り返されている場合。

  • InvalidTaskError - push タスクと pull タスクの両方がタスク リストに存在する場合。

  • InvalidTaskNameError - タスク名が指定されていても有効ではない場合。

  • TooManyTasksError - タスクに MAX_TASKS_PER_ADD の数を超えるタスクが含まれている場合。

  • TransactionalRequestTooLargeError - transactional が True で、タスクとそれをサポートするリクエスト データの合計サイズが MAX_TRANSACTIONAL_REQUEST_SIZE_BYTES の割り当てを超えている場合。

delete_tasks(task)ソース

このキューから 1 つのタスクまたはタスクのリストを削除します。

複数のタスクを指定した場合、個々のタスクの削除に失敗すると例外が発生します。task.was_deleted プロパティを確認します。

タスク名は、削除するタスクを選択するために使用する唯一のタスク属性です。名前が付けられていないタスク、または was_deleted プロパティが True に設定されているタスクが存在する場合は、すぐに BadTaskStateError が発生します。

パラメータ

task – キューから削除されるタスク インスタンスまたはタスク インスタンスのリスト。

戻り値

この呼び出しに渡されたタスクまたはタスクのリスト。

発生
  • BadTaskStateError - 削除するタスクにタスク名がない場合、またはタスクがすでに削除されている場合。

  • DuplicateTaskNameError - リクエストでタスクが繰り返されている場合。

  • アプリケーション エラーのエラー サブクラス。

delete_tasks_async(task, rpc=None)ソース

このキューから 1 つのタスクまたはタスクのリストを非同期的に削除します。

タスク名は、削除するタスクを選択するために使用する唯一のタスク属性です。

この関数は、非同期オブジェクトを返す以外は delete_tasks() と同じです。戻り値に対して get_result() を呼び出すことによって、その呼び出しの中で処理をブロックできます。

パラメータ
  • task – キューから削除されるタスク インスタンスまたはタスク インスタンスのリスト。

  • rpc - オプションの UserRPC オブジェクト。

戻り値

UserRPC オブジェクト。get_result() を呼び出して RPC を完了して、この呼び出しに渡されるタスクまたはタスクのリストを取得します。

発生
  • BadTaskStateError - 削除するタスクにタスク名がない場合、またはタスクがすでに削除されている場合。

  • DuplicateTaskNameError - リクエストでタスクが繰り返されている場合。

delete_tasks_by_name(task_name)ソース

名前を指定することによって、このキュー内のタスクまたはタスクのリストを削除します。

複数のタスクを指定した場合、個々のタスクの削除に失敗すると例外が発生します。

パラメータ

task_name - タスク名に対応する文字列、またはタスク名に対応する文字列のイテラブル。

戻り値

文字列以外のイテラブルが入力として渡された場合、タスク名ごとにタスク オブジェクトのリストが 1 つずつ、リクエストされた順序で返されます。この呼び出しによって削除された各タスクの Task.was_deleted プロパティは True になり、不明なタスクと廃棄されたタスクの場合は False になります。

単一の文字列が入力として渡された場合は、単一のタスク オブジェクトが返されます。

発生
  • DuplicateTaskNameError - リクエストでタスク名が繰り返されている場合。

  • アプリケーション エラーのエラー サブクラス。

delete_tasks_by_name_async(task_name, rpc=None)ソース

名前を指定することによって、このキュー内のタスクまたはタスクのリストを非同期的に削除します。

この関数は、非同期オブジェクトを返す以外は delete_tasks_by_name() と同じです。戻り値に対して get_result() を呼び出すことによって、その呼び出しの中で処理をブロックできます。

パラメータ
  • task_name - タスク名に対応する文字列、またはタスク名に対応する文字列のイテラブル。

  • rpc - オプションの UserRPC オブジェクト。

戻り値

UserRPC オブジェクト。get_result() を呼び出して RPC を完了し、結果を取得します。

文字列以外のイテラブルが入力として渡された場合、タスク名ごとにタスク オブジェクトのリストが 1 つずつ、リクエストされた順序で返されます。この呼び出しによって削除された各タスクの Task.was_deleted プロパティは True になり、不明なタスクおよび廃棄されたタスクの場合は False になります。

それ以外の場合、入力として単一の文字列が渡されると、単一のタスク オブジェクトが返されます。

発生

DuplicateTaskNameError - リクエストでタスク名が繰り返されている場合。

fetch_statistics(deadline=10)ソース

このキューに関する現在の詳細を取得します。

パラメータ

deadline - メソッド呼び出しが中止されるまでの最大待機秒数。

戻り値

このキューに関する情報を含む QueueStatistics インスタンス。アプリケーション エラーのエラー サブクラス。

fetch_statistics_async(rpc=None)ソース

このキューに関する現在の詳細を非同期的に取得します。

パラメータ

rpc - オプションの UserRPC オブジェクト。

戻り値

UserRPC オブジェクト。get_result() を呼び出して RPC を完了し、このキューに関する情報を含む QueueStatistics インスタンスを取得します。

lease_tasks(lease_seconds, max_tasks, deadline=10)ソース

一定期間、複数のタスクをキューからリースします。

このメソッドは pull キューに対してのみ実行できます。pull キュー内の pull でないタスクは、リース時に pull タスクに変換されます。利用できるタスクの数が指定された max_tasks の数より少なければ、利用可能なタスクがすべて返されます。lease_tasks メソッドでは、1 回の呼び出しで最大 1,000 タスクを 1 週間までリースできます。

パラメータ
  • lease_seconds - タスクのリース期間の秒数。最大 1 週間(604,800 秒)。正の整数で指定する必要があります。

  • max_tasks - pull キューからリースするタスクの最大数。最大 1,000 タスク。

  • deadline - メソッド呼び出しが中止されるまでの最大待機秒数。

戻り値

キューからリースされたタスクのリスト。

発生
  • InvalidLeaseTimeError - lease_seconds が有効な浮動小数点数や整数でない場合、または有効範囲外の場合。

  • InvalidMaxTasksError - max_tasks が有効な整数でない場合、または有効範囲外の場合。

  • InvalidQueueModeError – pull モードでないキューで呼び出された場合。

  • アプリケーション エラーのエラー サブクラス。

lease_tasks_async(lease_seconds, max_tasks, rpc=None)ソース

キューから多数のタスクを非同期的にリースします。

このメソッドは pull キューに対してのみ実行できます。タスクを push キューからリースしようとすると、InvalidQueueModeError が発生します。pull キュー内の pull タスクでないタスクはすべて、リース時に pull タスクに変換されます。利用できるタスクの数が指定された max_tasks の値より少ない場合、ベスト エフォート ベースで利用可能なすべてのタスクが返されます。lease_tasks_async メソッドでは、1 回の呼び出しで最大 1,000 タスクを 1 週間までリースできます。

この関数は、非同期オブジェクトを返す以外は lease_tasks() と同じです。戻り値に対して get_result() を呼び出すことによって、その呼び出しの中で処理をブロックできます。

パラメータ
  • lease_seconds - タスクのリース期間の秒数。最大 1 週間(604,800 秒)。正の整数で指定する必要があります。

  • max_tasks - pull キューからリースするタスクの最大数。最大 1,000 タスク。

  • rpc - オプションの UserRPC オブジェクト。

戻り値

UserRPC オブジェクト。get_result() を呼び出して RPC を完了し、キューからリースされたタスクのリストを取得します。

発生
  • InvalidLeaseTimeError - lease_seconds が有効な浮動小数点数や整数でない場合、または有効範囲外の場合。

  • InvalidMaxTasksError - max_tasks が有効な整数でない場合、または有効範囲外の場合。

lease_tasks_by_tag(lease_seconds, max_tasks, tag=None, deadline=10)ソース

同じタグのタスクをキューからリースします。

tag が指定されている場合、そのタグを持つタスクが指定された期間リースされます。tag が指定されていない場合は、キューの最も古いタスク(eta により指定)のタグが使用されます。

このメソッドは pull キューに対してのみ実行できます。pull キュー内の pull でないタスクは、リース時に pull タスクに変換されます。利用できるタスクの数が指定された max_tasks の値より少なければ、利用可能なタスクがすべて返されます。lease_tasks メソッドでは、1 回の呼び出しで最大 1,000 タスクを 1 週間までリースできます。

パラメータ
  • lease_seconds - タスクをリースする秒数。

  • max_tasks - pull キューからリースするタスクの最大数。

  • tag - 照会するタグ。最初に使用可能なタグでグループ化する場合は None。

  • deadline - メソッド呼び出しが中止されるまでの最大待機秒数。

戻り値

キューからリースされたタスクのリスト。

発生
  • InvalidLeaseTimeError - lease_seconds が有効な浮動小数点数や整数でない場合、または有効範囲外の場合。

  • InvalidMaxTasksError - max_tasks が有効な整数でない場合、または有効範囲外の場合。

  • InvalidQueueModeError – pull モードでないキューで呼び出された場合。

  • アプリケーション エラーのエラー サブクラス。

lease_tasks_by_tag_async(lease_seconds, max_tasks, tag=None, rpc=None)ソース

同じタグを持つタスクをキューから非同期的にリースします。

tag が指定されている場合、そのタグを持つタスクが指定された期間リースされます。tag が指定されていない場合は、キューの最も古いタスク(eta により指定)の最も古いタグ(ベスト エフォート)が使用されます。

この関数は、非同期オブジェクトを返す以外は lease_tasks_by_tag() と同じです。戻り値に対して get_result() を呼び出すことによって、その呼び出しの中で処理をブロックできます。

パラメータ
  • lease_seconds - タスクをリースする秒数。

  • max_tasks - pull キューからリースするタスクの最大数。

  • tag - 照会するタグ。最初に使用可能なタグでグループ化する場合は None。

  • rpc - オプションの UserRPC オブジェクト。

戻り値

UserRPC オブジェクト。get_result() を呼び出して RPC を完了し、キューからリースされたタスクのリストを取得します。

発生
  • InvalidLeaseTimeError - lease_seconds が有効な浮動小数点数や整数でない場合、または有効範囲外の場合。

  • InvalidMaxTasksError - max_tasks が有効な整数でない場合、または有効範囲外の場合。

modify_task_lease(task, lease_seconds)ソース

このキューのタスクのリースを変更します。

パラメータ
  • task - リースが変更されるタスク インスタンス。

  • lease_seconds - 現在の時刻からタスクのリースが変更される時刻までの秒数。lease_seconds0 の場合、タスクのリースは削除され、タスクは再び lease_tasks メソッドを使用してリースできるようになります。

発生
  • TypeError - lease_seconds が有効な浮動小数点数や整数でない場合。

  • InvalidLeaseTimeError - lease_seconds が有効範囲外の場合。

  • アプリケーション エラーのエラー サブクラス。

name

このキューの名前を返します。

purge()ソース

このキュー内のすべてのタスクを削除します。

キューのパージには、キューのサイズに関係なく時間がかかります。キューがパージされたことをバックエンドが認識するまで、タスクの実行は続けられます。パージは取り消しのできないオペレーションです。パージされたタスクは復元できません。

発生

アプリケーション エラーのエラー サブクラス。

クラス google.appengine.api.taskqueue.taskqueue.QueueStatistics(queue, tasks, oldest_eta_usec=None, executed_last_minute=None, in_flight=None, enforced_rate=None)ソース

ベース: object

キューの現在の状態を表します。

クラスメソッド fetch(queue_or_queues, deadline=10)ソース

複数のキューのキュー詳細を取得します。

QueueStatistics.fetch() を使用して、対象のキューの QueueStatistics オブジェクトを取得します。1 つ以上のキューを指定できます。

例:

statsList = taskqueue.QueueStatistics.fetch([taskqueue.Queue("foo"),
                                             taskqueue.Queue("bar")])
パラメータ
  • queue_or_queues - 統計を取得するキューまたはキューのリスト。単一のキューの統計を取得する場合は、キュー インスタンスまたはキューの名前を指定できます。キューのリストの統計を取得する場合は、キュー インスタンスの反復可能リストまたはキュー名の反復可能リストを指定できます。

  • deadline - メソッド呼び出しが中止されるまでの最大待機秒数。

戻り値

イテラブル(文字列以外)が入力として渡されると、QueueStatistics オブジェクトのリストがキューごとに 1 つずつ、リクエストされた順序で返されます。

単一の項目が入力として渡された場合は、単一の QueueStatistics オブジェクトが返されます。

発生
  • TypeError - queue_or_queues がキュー インスタンス、文字列、キュー インスタンスのみを含むイテラブル、文字列のみを含むイテラブルのいずれでもない場合。

  • アプリケーション エラーのエラー サブクラス。

クラスメソッド fetch_async(queue_or_queues, rpc=None)ソース

複数のキューのキュー詳細を非同期的に取得します。

例:

rpc = taskqueue.create_rpc(deadline=1.0)
taskqueue.QueueStatistics.fetch_async([taskqueue.Queue("foo"),
                                        taskqueue.Queue("bar")], rpc)
statsList = rpc.get_result()
パラメータ
  • queue_or_queues - 統計を取得するキューまたはキューのリスト。単一のキューの統計を取得する場合は、キュー インスタンスまたはキューの名前を指定できます。キューのリストの統計を取得する場合は、キュー インスタンスの反復可能なリストまたはキュー名の反復可能なリストを指定できます。

  • rpc - オプションの UserRPC オブジェクト。

戻り値

UserRPC オブジェクト。get_result() を呼び出して RPC を完了し、結果を取得します。

イテラブル(文字列以外)が入力として渡されると、QueueStatistics オブジェクトのリストがキューごとに 1 つずつ、リクエストされた順序で返されます。

単一の項目が入力として渡された場合は、単一の QueueStatistics オブジェクトが返されます。

発生

TypeError - queue_or_queues がキュー インスタンス、文字列、キュー インスタンスのみを含むイテラブル、文字列のみを含むイテラブルのいずれでもでない場合。

クラス google.appengine.api.taskqueue.taskqueue.Task(payload=None, **kwargs)ソース

ベース: object

キュー上の単一のタスクを表します。

Task クラスを使用すると、アプリケーションがバックグラウンド作業をキューに格納できます。作業は、push キューから push されたタスクを処理する Webhook か、または pull キューから手動でタスクを pull するワーカーによって行われます。

push キューでは、ほとんどのタスクが ETA の順序(ベスト エフォート)で渡されます。

Webhook が失敗した場合、タスクは後で再試行されます。失敗したタスクについては、再試行の頻度と回数を構成できます。push タスクでは Webhook の URL を直接指定できます。デフォルトの URL スキームを使用することもできます。このスキームは、タスク名をキューのベースパスへの相対 URL に変換します。簡単に使用できるデフォルト キューも用意されています。

pull キューでは、ワーカーがタスクをリースして処理し、処理後にタスクを削除します。タスクの再試行回数は、タスクがリースされた回数に基づいて構成できます。それぞれ別個のスロットル制御を備えた複数のキューを定義できます。

タスクのさまざまなプロパティはコンストラクタで設定します。Task オブジェクトをインスタンス化したら、そのタスクをキューに挿入します。各タスク インスタンスは 1 つのキューにのみ挿入できます。

add(queue_name='default', transactional=False)ソース

このタスクをキューに追加します。Queue.add をご覧ください。

add_async(queue_name='default', transactional=False, rpc=None)ソース

このタスクをキューに非同期的に追加します。Queue.add_async をご覧ください。

eta

このタスクが実行またはリースされるときに datetime.datatime を返します。

eta_posix

このタスクが実行またはリースされるときの POSIX タイムスタンプを返します。

extract_params()ソース

このタスクのパラメータを返します。

同じ名前のパラメータに複数の値がある場合、文字列のリストがその値になります。POST リクエストと pull タスクでは、パラメータはタスク ペイロードから抽出されます。それ以外のメソッドでは、パラメータは URL クエリ文字列から抽出されます。

戻り値

パラメータ名をそれぞれの値に文字列としてマップする文字列の辞書。同じ名前のパラメータに複数の値がある場合、その値は文字列のリストになります。POST リクエストと pull タスクでは、パラメータはタスク ペイロードから抽出されます。それ以外のメソッドでは、パラメータは URL クエリ文字列から抽出されます。タスクに空のペイロードまたはクエリ文字列が含まれている場合は、空の辞書が返されます。

発生

ValueError – ペイロードに有効な application/x-www-form-urlencoded データが含まれていない場合(POST リクエストと pull タスクの場合)、または URL に有効なクエリが含まれていない場合(それ以外のリクエストの場合)。

headers

このタスクの HTTP ヘッダーのコピーを返します(push タスクのみ)。

method

このタスクに使用するメソッドを返します。

name

このタスクの名前を返します。

on_queue_url

タスクがキューのデフォルト URL で実行される場合は True を返します(push タスクのみ)。

payload

タスクが呼び出されたときに使用されるペイロードを返します(None の場合があります)。

queue_name

このタスクが関連付けられているキューの名前を返します。

retry_count

タスクに対して行われた再試行またはリースの回数を返します。

retry_options

TaskRetryOptions タスクのいずれかまたはすべてを返します。

size

このタスクのサイズをバイト単位で返します。

tag

このタスクのタグを返します。

target

このタスクのターゲットを返します。

url

このタスクの相対 URL を返します(push タスクのみ)。

was_deleted

このタスクが正常に削除された場合は True を返します。

was_enqueued

このタスクがキューに挿入されている場合は True を返します。

クラス google.appengine.api.taskqueue.taskqueue.TaskRetryOptions(**kwargs)ソース

ベース: object

失敗したタスクをいつ再試行するかを決定するオプション。

タスクキューで実行されるタスクは、さまざまな理由で失敗することがあります。タスクの実行が失敗し、200~299 の範囲にない HTTP ステータス コードが返された場合、App Engine では成功するまでタスクが再試行されます。デフォルトでは、アプリケーションが大量のリクエストで飽和状態になるのを避けるために再試行頻度が徐々に下がりますが、タスクが成功するまでは 1 時間に最大 1 回繰り返すように再試行のスケジュールが設定されます。ただし、503 エラーは特別なケースとして扱われるため、ユーザー コードによって返されません。

TaskRetryOptions クラスは、実行時に失敗したタスクを再試行するタイミングを決定するために使用するプロパティを提供します。

max_backoff_seconds

タスクが再試行されるまでの最大待機秒数。

max_doublings

再試行間隔が 2 倍になる回数。

min_backoff_seconds

タスクが再試行されるまでの最小待機秒数。

task_age_limit

失敗したタスクの再試行を中止する秒数。

task_retry_limit

失敗したタスクの再試行回数。

google.appengine.api.taskqueue.taskqueue.add(*args, **kwargs)ソース

タスクを作成してキューに追加する便利なメソッド。

パラメータはすべてオプションです。

push タスクは pull モードのキューには追加できません。同様に、pull タスクを push モードのキューに追加することもできません。

パラメータ
  • payload – このタスクのペイロード データ。このデータは Webhook やバックエンドに HTTP リクエスト本文として渡されるか(push キューの場合)、lease_tasks() からのレスポンスの一部としてワーカーによって取得されます(pull キューの場合)。この引数は、POST メソッドと PUT メソッド、および pull タスクに対してのみ許可されます。

  • queue_name - タスクの挿入先キューの名前。名前が指定されない場合は、デフォルトのキューが使用されます。

  • name - タスクに指定する名前。指定しない場合、タスクがキューに追加されてこのオブジェクトに割り当てられるときに名前が自動生成されます。この名前は _TASK_NAME_PATTERN 正規表現に一致している必要があります。

  • method – Webhook へのアクセス時に使用するメソッド。デフォルト値は POST です。これ以外に使用できる値は GETPUTDELETEHEADPULL です。push タスクにはメソッドを指定しないでください。このメソッドのデフォルトは POST であるため、割り当てられたタスクはユーザー指定の url の Webhook に送信されます。methodPULL に設定するとタスクは Webhook に自動的に送信されず、リースされるまでキュー内に残ります。

  • url - このアプリケーションでこのタスクを処理する Webhook が存在する相対 URL。この引数が POST メソッドで使用されていない場合は、クエリ文字列を使用できます。この引数は pull タスクでは使用できません。

  • headers - Webhook に渡すヘッダーの辞書。辞書内の値は、反復するヘッダー フィールドを示すイテラブルの可能性があります。PUSH メソッドに Content-Type ヘッダーを指定しない場合、デフォルトのヘッダー(text/plain)が使用されます。PUSH メソッドに Host ヘッダーを指定する場合は、target 引数を指定しないでください。pull タスクでは header 引数は使用できません。X-AppEngine 接頭辞を使用するヘッダーも削除されます。

  • params - このタスクに使用するパラメータの辞書。POST リクエストと pull リクエストでは、辞書内の値は反復するパラメータを示すイテラブルである可能性があります。これらのパラメータは application/x-www-form-urlencoded としてエンコードされてペイロードに設定されます。POST リクエストと pull リクエストではいずれも、すでにペイロードを指定している場合はパラメータを指定しないでください。PUT リクエストでは、URL にクエリ文字列が含まれている場合やタスクにすでにペイロードが指定されている場合、パラメータはクエリ文字列に変換されます。PUT リクエストの場合、URL にすでにクエリ文字列が含まれていてメソッドが GET の場合は、パラメータを指定しないでください。それ以外のメソッドでは、パラメータはクエリ文字列に変換されます。

  • transactional – オプション。True の場合、包含トランザクションが正常にコミットされた場合にのみタスクが追加されます。含有トランザクションがない場合にこの引数が True に設定されていると、エラーが返されます。False の場合、タスクを直ちに追加し、含有トランザクションが成功か失敗かは無視されます。

  • countdown - 将来このタスクを実行またはリースするときまでの時間(秒単位)。デフォルトは 0 です。eta を指定した場合は、この引数を指定しないでください。

  • eta – タスクを実行する最も早い絶対時間を指定する datetime.datetimecountdown 引数が指定されている場合は、この引数を指定できません。この引数は、time zone-aware か time zone-naive、または過去の時刻に設定できます。この引数が None に設定されている場合、デフォルト値は現在時刻になります。pull タスクの場合、eta 引数が示す時刻より前にワーカーがタスクをリースすることはできません。

  • retry_options - タスクが失敗した場合にいつ再試行するかを制御するために使用する TaskRetryOptions。pull タスクの場合、task_retry_limit オプションを指定できるのは、タスクがキューから削除される前にリースできる回数を指定するときだけです。push タスクの場合、min_backoff_secondsmax_backoff_secondstask_age_limitmax_doublingstask_retry_limit オプションを指定できます。

  • tag - タグでグループ化するときに使用するタグ(pull タスクのみ)。

  • target - push タスクのみ。このタスクを実行する代替バージョンまたはバックエンド、あるいはアプリケーションのデフォルト バージョンで実行する DEFAULT_APP_VERSION を指定します。このタスクを実行するためのモジュールまたはバージョン、フロントエンド バージョン、あるいはバックエンドを指定できます。指定した文字列は、アプリのドメイン名の先頭に追加されます。target 引数を指定する場合は、headers 引数に辞書の Host ヘッダーを指定しないでください。

戻り値

キューに追加されたタスク。

発生
  • BadTransactionStateError - transactional 引数が true であるのに、この呼び出しがトランザクションのコンテキスト外で行われている場合。

  • InvalidEtaError - eta の設定があまりにも遠い未来である場合。

  • InvalidQueueModeError – pull タスクが push モードのキューに追加されているか、PULL でない method のタスクが pull モードのキューに追加されている場合。

  • InvalidTagError - タグが長すぎる場合。

  • InvalidTaskError - いずれかのパラメータが無効な場合。

  • InvalidTaskNameError - タスク名が無効な場合。

  • InvalidUrlError - タスク URL が無効であるか長すぎる場合。

  • TaskTooLargeError – 関連するペイロードを含むタスクが大きすぎる場合。

  • TransactionalRequestTooLargeError - transactional が True で、タスクとそれをサポートするリクエスト データの合計サイズが MAX_TRANSACTIONAL_REQUEST_SIZE_BYTES の割り当てを超えている場合。

google.appengine.api.taskqueue.taskqueue.create_rpc(deadline=None, callback=None)ソース

タスクキュー API で使用するための RPC オブジェクトを作成します。

パラメータ
  • deadline - 任意で指定するオペレーションの期限(秒単位)。デフォルト値はシステム固有の期限です(通常は 5 秒)。この期限をすぎると、DeadlineExceededError エラーが返されます。

  • callback – タスクキュー サービスで呼び出されるオプション関数。RPC オブジェクトで get_result()check_success()、または wait() が呼び出されると結果を正常に返します。この関数は、引数なしで呼び出されます。この関数はバックグラウンドのプロセスやスレッドで呼び出されません。上記のいずれかのメソッドがアプリケーションによって呼び出されたときにだけ呼び出されます。この関数は、リクエストが失敗した場合や RPC 期限が経過した場合でも呼び出されます。

戻り値

このサービスに特化した apiproxy_stub_map.UserRPC オブジェクト。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Python の App Engine スタンダード環境