Celery 3.0の変更履歴—Pythonドキュメント

提供:Dev Guides
Celery/docs/latest/history/changelog-3.0
移動先:案内検索

Celery3.0の変更履歴

3.0.xより前のバージョンをお探しの場合は、 History にアクセスしてください。

3.0.24

発売日
2013-10-11 04:40 pm BST
リリースバイ
ソレムに聞く
  • 昆布2.5.15 に依存するようになりました。

  • 現在、:pypi: `billiard` バージョン2.7.3.34に依存しています。

  • AMQP結果バックエンド:キュー宣言をキャッシュしなくなりました。

    AMQP結果バックエンドによって作成されたキューは常に一意であるため、宣言をキャッシュするとメモリリークが遅くなりました。

  • ワーカー:ホスト名にUnicode文字が含まれている場合のクラッシュを修正しました。

    Daodaoによる寄稿。

  • -Pソロプールが選択されている場合、ワーカーは起動しなくなりました(問題#1548)。

  • タスクのいずれかが再試行された場合、Redis / Cacheの結果バックエンドはコードを完了しませんでした(問題#1401)。

  • アプリが完成した場合、タスクデコレータはもはや怠惰ではありません。

  • AsyncResult:current_appが利用できない場合のcopy(AsyncResult)のバグを修正しました。

  • ResultSet:文字列IDが渡されたときにアプリを適切に伝播するようになりました。

  • 値が空の文字列の場合、ローダーは CELERY_CONFIG_MODULEを無視するようになりました。

  • 属性を2回削除しようとしたプロキシオブジェクトの競合状態が修正され、AttributeErrorが発生しました。

  • タスクメソッドは、:setting: `CELERY_ALWAYS_EAGER` 設定で機能するようになりました(問題#1478)。

  • Broadcastキューは、タスクの公開時に誤って宣言されました(問題#1540)。

  • 新しい C_FAKEFORK環境変数を使用して、init-scriptsをデバッグできます。

    これを設定すると、デーモン化の手順がスキップされ、標準の出力が閉じられた後にstderrに出力されるエラーが表示されます。

    $ C_FAKEFORK /etc/init.d/celeryd start

    これは一般に celery multi コマンドで機能します。

  • get_pickleable_etypeが常に値を返すとは限りませんでした(問題#1556)。

  • app.GroupResult.restoreがデフォルトのアプリにフォールバックするバグを修正しました。

  • 組み込みタスクがcurrent_appを使用するまれなバグを修正しました。

  • maybe_fileno()ValueErrorを処理するようになりました。


3.0.23

発売日
2013-09-02 01:00 pm BST
リリースバイ
ソレムに聞く
  • 昆布2.5.14 に依存するようになりました。

  • send_tasklinkおよびlink_error引数を尊重しませんでした。

    これには、チェーンが未登録のタスクを呼び出さず、サイレントに破棄するという副作用がありました。

    テイラーネルソンによって提供された修正。

  • celery.state:最適化された優先順位ルックアップ。

    MattRobenoltによる寄稿。

  • POSIX:デーモン化はsys.stdin/dev/nullにリダイレクトしませんでした。

    アレクサンドルスミルノフによって提供された修正。

  • キャンバス:.apply_asyncを使用すると、グループのバグによりデフォルトアプリにフォールバックしました(問題#1516)

  • Canvas:ジェネレーターの引数は常に選択可能であるとは限りませんでした。


3.0.22

発売日
2013-08-16 04:30 pm BST
リリースバイ
ソレムに聞く
  • 昆布2.5.13 に依存するようになりました。

  • :pypi: `billiard` 2.7.3.32に依存するようになりました

  • 月次および年次のCrontabのバグを修正しました(問題#1465)。

    GuillaumeGauvritによって提供された修正。

  • 時間制限によって引き起こされるメモリリークを修正しました(問題#1129、問題#1427)

  • worker-onlineイベントによるスパムを回避するために、1秒間に5回以上再起動すると、ワーカーはスリープ状態になります。

  • ドキュメントの修正が含まれています

    寄稿者:Ken Fromm、Andreas Savvides、Alex Kiriukha、Michael Fladischer


3.0.21

発売日
2013-07-05 04:30 pm BST
リリースバイ
ソレムに聞く
  • :pypi: `billiard` 2.7.3.31に依存するようになりました。

    このバージョンでは、ビリヤードC拡張機能なしで実行した場合のバグが修正されました。

  • 3.0.20はeventlet / geventサポートを壊しました(ワーカーが開始していません)。

  • MongoDB結果バックエンドがgeventプールで使用されたときのメモリリークの問題を修正しました。

    修正はRossLawleyによって提供されました。


3.0.20

発売日
2013-06-28 04:00 pm BST
リリースバイ
ソレムに聞く
  • デッドロックの問題の回避策が含まれています。

    より良いソリューションはCelery3.1の一部になります。

  • 昆布2.5.12 に依存するようになりました。

  • :pypi: `billiard` 2.7.3.30に依存するようになりました。

  • --loader引数は、現在のディレクトリからのローダーのインポートをサポートしなくなりました。

  • [ワーカー]接続が失われた後に再起動したときのメモリリークを修正しました(問題#1325)。

  • [ワーカー]起動時のUnicodeDecodeErrorを修正しました(問題#1373)。

    JessicaTallonによって提供された修正。

  • [ワーカー]ピクルスできない例外を適切に書き直すようになりました。

  • 取り消されたタスクセットからアイテムを削除するときに発生する可能性があった競合状態を修正しました。

  • [generic-init.d] Ubuntuの最小限のDashシェルとの互換性を修正しました(問題#1387)。

    :github_user: `monkut` によって提供された修正。

  • Task.apply / ALWAYS_EAGERは、コールバックとエラーバックも実行するようになりました(問題#1336)。

  • [ワーカー] :signal: `worker-shutdown` シグナルがディスパッチされなくなりました(問題#1339)j

  • [Python 3] threading.Eventの問題を修正しました。

    XavierOrdoquyによって提供された修正。

  • [Python 3] Python3のfile.fileno()によって発生する可能性のあるio.UnsupportedOperationを処理するようになりました。

  • [Python 3] qualnameの問題を修正しました。

  • [events.State]不明なイベントグループを無視するようになりました。

  • [MongoDBバックエンド]非推奨のsafeパラメーターを使用しなくなりました。

    :github_user: `rfkrocktk` によって提供された修正。

  • イベントレットプールがWindowsにインポートされるようになりました。

  • [Canvas]不変のコードメンバーが引数を受け取る可能性があるリグレッションを修正しました(問題#1340)。

    PeterBrookによる修正。

  • [Canvas]チェーンはジェネレーター引数を再び受け入れるようになりました(問題#1319)。

  • celery.migrateコマンドは、キューが指定されていない場合、すべてのキューから消費するようになりました。

    ジョン・ワトソンによって寄稿された修正。


3.0.19

発売日
2013-04-17 04:30:00 pm BST
リリースバイ
ソレムに聞く
  • :pypi: `billiard` 2.7.3.28に依存するようになりました

  • Python 3関連の修正により、3.0.18で発表されたデッドロック修正が無効になりました。

    これが二度と起こらないことを確認するためのテストが追加されました。

  • タスク再試行ポリシー:デフォルトのmax_retriesは3になりました。

    これにより、ブローカーがダウンしているときにクライアントがハングすることはありません。

    ノート

    :signal: `celeryd_after_setup` シグナルを使用して、ワーカーの再試行を長く設定できます。

    from celery.signals import celeryd_after_setup
    
    @celeryd_after_setup.connect
    def configure_worker(instance, conf, **kwargs):
        conf.CELERY_TASK_PUBLISH_RETRY_POLICY = {
            'max_retries': 100,
            'interval_start': 0,
            'interval_max': 1,
            'interval_step': 0.2,
        }
  • ワーカー:本文がバッファーインスタンスであっても、エラーメッセージにメッセージ本文が正しく表示されるようになりました。

  • 3.0.18はMongoDB結果バックエンドを壊しました(問題#1303)。


3.0.18

発売日
2013-04-12 05:00:00 pm BST
リリースバイ
ソレムに聞く
  • :pypi: `kombu` 2.5.10に依存するようになりました。

    昆布チェンジログをご覧ください。

  • :pypi: `billiard` 2.7.3.27に依存するようになりました。

  • 新しい:setting: `CELERY_ACCEPT_CONTENT` 設定を使用して、承認されたシリアライザーのホワイトリストを指定できるようになりました。

    これは、pickleやその他の信頼できないシリアライザーでシリアル化されたメッセージをワーカーに強制的に破棄できることを意味します。 たとえば、JSONシリアル化されたメッセージのみを許可するには、次のものを使用します。

    CELERY_ACCEPT_CONTENT = ['json']

    ホワイトリストでMIMEタイプを指定することもできます。

    CELERY_ACCEPT_CONTENT = ['application/json']
  • シグナルで終了したときにセマフォが解放されないために発生するマルチプロセッシングのプールのデッドロックが修正されました。

  • プロセスプール:GDBを使用してプールプロセスをデバッグできるようになりました。

  • celery reportは、パスワードやシークレットトークンなどの秘密の設定を検閲するようになりました。

    インターネットに何かを貼り付ける前に、出力を確認する必要があります。

  • 接続URLは、複数の「+」トークンを無視するようになりました。

  • ワーカー/ statedb:ピクルスプロトコル2(Python 2.5以降)を使用するようになりました

  • Python3の互換性の問題を修正しました。

  • ワーカー:ワーカーが既存のワーカーと同じノード名で開始された場合に警告が表示されるようになりました。

  • ワーカー:タスクの取り消し中に発生する可能性があったデッドロックを修正しました(問題#1297)。

  • ワーカー::sig: `HUP` ハンドラーは、ファイル記述子がリークしないように、再起動する前に開いているすべてのファイル記述子を閉じるようになりました(問題#1270)。

  • ワーカー:取り消されたタスクリストの保存/読み込みを最適化しました(問題#1289)。

    この変更後、celery worker --statedbファイルはより多くのディスク領域を占有しますが、取り消されたタスクからのロードと保存はかなり高速になります(以前は5分かかっていたものが1秒未満になります)。

  • ブローカートランスポート名にタイプミスがある場合、Celeryは代替案を提案するようになりました(例:ampq-> amqp)。

  • ワーカー:監視対象のファイルのリンクが解除されると、自動リローダーによってクラッシュが発生していました。

    AgrisAmeriksによって提供された修正。

  • AsyncResultのピクルスエラーを修正しました。

    ThomasMinorによる修正。

  • ログの色を使用する場合のログ出力でのUnicodeの処理を修正しました(問題#427)。

  • ConfigurationViewMutableMappingになりました。

    AaronHarnlyによる寄稿。

  • LRUキャッシュ実装のメモリリークを修正しました。

    RomualdBrunetによって提供された修正。

  • celery.contrib.rdb:ソケットが非ブロッキングモードのときに機能するようになりました。

    TheoSpearsによる修正。

  • inspect reserved リモートコントロールコマンドには、アクティブな(開始された)タスクと予約されたタスクが含まれていました(問題#1030)。

  • :signal: `task_failure` シグナルは、ピクルス化を目的とした変更されたトレースバックオブジェクトを受信しました。これは修正され、代わりに実際のトレースバックを受信するようになりました。

  • @taskデコレータは、位置引数を黙って無視し、代わりに期待されるTypeErrorを発生させるようになりました(問題#1125)。

  • ワーカーは、無効なETA /期限切れフィールドを持つメッセージを適切に処理するようになりました(問題#1232)。

  • pool_restartリモートコントロールコマンドは、:setting: `CELERYD_POOL_RESTARTS` 設定が設定されていない場合にエラーを報告するようになりました。

  • @add_defaults`()を非dictオブジェクトで使用できるようになりました。

  • Proxyクラスの互換性の問題を修正しました(問題#1087)。

    クラス属性__module____name__、および__doc__は、意味のある文字列オブジェクトになりました。

    MariusGedminasに感謝します。

  • MongoDBバックエンド::setting: `MONGODB_BACKEND_SETTINGS` 設定は、optionキーを受け入れるようになりました。これにより、任意のkwargを基になるpymongo.Connectionオブジェクトに転送できます(問題#1015)。

  • ビート:自動結果期限切れをサポートする結果バックエンドでは、毎日のバックエンドクリーンアップタスクが有効ではなくなりました(問題#1031)。

  • キャンバスリスト操作は、current_appに依存するのではなく、リストの最初のタスクからアプリケーションインスタンスを取得するようになりました(問題#1249)。

  • ワーカー:メッセージデコードエラーログメッセージにトレースバック情報が含まれるようになりました。

  • ワーカー:スタートアップバナーにシステムプラットフォームが含まれるようになりました。

  • celery inspect|status|controlは、SQLベースのブローカートランスポートで使用するとエラーが発生するようになりました。


3.0.17

発売日
2013-03-22 04:00:00 pm UTC
リリースバイ
ソレムに聞く
  • 昆布2.5.8に依存

  • 現在ビリヤード2.7.3.23に依存

  • RabbitMQ / Redis:スレッドレスおよびロックフリーのレート制限の実装。

    これは、レート制限がRabbitMQ / Redisまたはイベントループを使用する将来のトランスポートで使用される場合に最小限のオーバーヘッドをもたらすこと、およびレート制限の実装がスレッドレスおよびロックフリーであることを意味します。

    スレッドベースのトランスポートは今のところ古い実装を引き続き使用しますが、Celery3.1の他のブローカートランスポートにもタイマーを使用する予定です。

  • ブローカーとしてRabbitMQ / Redisを使用している場合、レート制限がeventlet / geventで機能するようになりました。

  • リグレッションにより、task.retryは追加のキーワード引数を無視しました。

    追加のキーワード引数が実行オプションとして再び使用されるようになりました。 SimonEngledewによる修正。

  • Windows:ワーカーの起動時にDjango設定モジュールをpickle化しようとするワーカーの問題を修正しました。

  • generic-init.d:二重引用符$CELERYD_CHDIRはなくなりました(問題#1235)。

  • generic-init.d:bash固有の構文を削除します。

    PärWieslanderによって提供された修正。

  • Cassandra Result Backend:AllServersUnavailableエラーを処理するようになりました(問題#1010)。

    JaredBielによって提供された修正。

  • 結果:逆シリアル化時にアプリをGroupResultsに適切に転送するようになりました(問題#1249)。

    Charles-AxelDeinによる修正。

  • GroupResult.revokeは、terminateおよびsignalキーワード引数をサポートするようになりました。

  • ワーカー:マルチプロセッシングプールワーカーは、ロギングシステムをセットアップする前にタスクモジュール/構成をインポートするようになりました。これにより、ロギングシグナルがディスパッチされる前に接続できるようになります。

  • コード:返されるAsyncResultインスタンスでは、parent属性がヘッダーGroupResultに設定されるようになりました。

    これは、chainの動作と一致しています。


3.0.16

発売日
2013-03-07 04:00:00 pm UTC
リリースバイ
ソレムに聞く
  • 幸せな国際女性の日!

    まだまだ先は長いので、コミュニティをより多様化するために活動している組織の1つに参加するチャンスです。


  • :pypi: `kombu` バージョン2.5.7に依存するようになりました

  • :pypi: `billiard` バージョン2.7.3.22に依存するようになりました

  • AMQPハートビートはデフォルトで無効になりました。

    一部のユーザーは、ハートビートを有効にすると問題が発生するため、必ずしも使用する必要はありません。

    接続障害の検出で問題が発生した場合は、:setting: `BROKER_HEARTBEAT` 設定を構成することで、ハートビートを再度有効にできます。

  • ワーカー:マルチプロセッシングコールバックで発生する接続エラーを伝播するようになり、接続をリセットできるようになりました(問題#1226)。

  • ワーカー:タイマーコールバックで発生する接続エラーを伝播するようになり、接続をリセットできるようになりました。

  • :setting: `CELERY_IMPORTS` および:setting:` CELERY_INCLUDE` のモジュールが、元の順序でインポートされるようになりました(問題#1161)。

    :setting: `CELERY_IMPORTS` のモジュールが最初にインポートされ、次に:setting:` CELERY_INCLUDE` が続きます。

    JoeyWilhelmに感謝します。

  • gitリポジトリで利用可能なceleryの新しいbash補完:

    https://github.com/celery/celery/tree/3.0/extra/bash-completion

    このファイルを入手するか、bash_completion.dに配置して、celeryコマンドラインユーティリティのオートコンプリートを取得できます。

  • ワーカーのノード名にUnicode文字を含めることができるようになりました(問題#1186)。

  • crontabオブジェクトのreprが正しく表示されるようになりました(問題#972)。

  • events.Stateは元のイベントディクショナリを変更しなくなりました。

  • Python3で非推奨になったLogger.warnを使用しなくなりました。

  • キャッシュバックエンド:コードで再び機能するようになりました(問題#1094)。

  • コードロック解除は、コールバックの呼び出し中に発生したエラーを処理するようになりました。

  • Generic Worker init.dスクリプト:ステータスチェックは、メッセージを送信する代わりに、インスタンスのpidをクエリすることによって実行されるようになりました。

    MilenPavlovによる寄稿。

  • CentOSの改善されたinitスクリプト。

    • Celery3.xの規則をサポートするように更新されました。

    • CentOS組み込みのstatusおよびkillprocを使用するようになりました

    • マルチノード/マルチpidワーカーサービスのサポート。

    • 標準の色分けされたCentOSservice-init出力。

    • テストスイート。

    MilenPavlovによる寄稿。

  • ResultSet.joinは、常に空の結果セットで機能するようになりました(問題#1219)。

  • 単一のタスクで構成されるgroupがサポートされるようになりました(問題#1219)。

  • pycallgraphプログラムをサポートするようになりました(問題#1051)。

  • Jythonの互換性の問題を修正しました。

  • Djangoチュートリアル:サンプルアプリをINSTALLED_APPSに追加する必要があることに言及しました(問題#1192)。


3.0.15

発売日
2013-02-11 04:30:00 pm UTC
リリースバイ
ソレムに聞く


3.0.14

発売日
2013-02-08 05:00:00 pm UTC
リリースバイ
ソレムに聞く
  • 昆布2.5.6に依存

  • 現在ビリヤード2.7.3.20に依存

  • execvはデフォルトで無効になりました。

    これはユーザーにとって非常に多くの問題を引き起こしていましたが、 CELERYD_FORCE_EXECV 設定を使用して有効にすることができます。

    execvは、AMQP / Redis以外のトランスポートが使用された場合にのみ有効になり、プロセスがフォークする前にミューテックスが解放されないことによって引き起こされるデッドロックを防ぐためにあります。 残念ながら、それはまた、恐ろしいハックを追加せずに修正するのが難しい多くのコーナーケースのバグを導入して環境を変更します。 デッドロックの問題は、execvが引き起こしているバグよりもはるかに少ない頻度で報告されるため、デフォルトで無効にするようになりました。

    execvが不要になるように、これらのトランスポートの非ブロッキングバージョンを作成する作業が進行中です(これは、amqpおよびredisブローカートランスポートの状況です)。

  • コード例外動作が定義されました(問題#1172)。

    Celery 3.1以降、コードのタスク部分で例外が発生すると、コードコールバックは状態をFAILUREに変更します。

    この場合に何が起こるかは文書化されておらず、実際の動作は非常に不十分でした。実際、例外値をコードコールバックに転送するだけです。

    下位互換性の理由から、現在の動作が文書化されていなくても、バグ修正リリースの新しい動作に変更することはありません。 代わりに、:setting: `CELERY_CHORD_PROPAGATES` 設定を有効にして、Celery3.1からデフォルトになる新しい動作を取得できます。

    詳細については、エラー処理を参照してください。

  • ワーカー:無視されて再試行されたタスクのバグを修正しました。

    on_chord_part_returnおよびTask.after_returnコールバック、またはtask_postrunシグナルは、タスクが再試行/無視されたときに呼び出す必要があります。

    Vladによって提供された修正。

  • GroupResult.join_nativeは、propagate引数を尊重するようになりました。

  • subtask.idsubtask['options'].idのエイリアスとして追加されました

    >>> s = add.s(2, 2)
    >>> s.id = 'my-id'
    >>> s['options']
    {'task_id': 'my-id'}
    
    >>> s.id
    'my-id'
  • ワーカー:接続障害後の再起動時に発生するエラーワーカープロセスを開始できませんでした(問題#1118)を修正しました。

  • 新しいシグナル:signal: `task-retried` を追加します(問題#1169)。

  • セロリイベント–dumper が接続損失を処理するようになりました。

  • 接続に失敗した場合に、タスク送信イベントの送信を再試行します。

  • amqpバックエンド:ポーリング後にメッセージを再公開する代わりに、Message.requeueを使用するようになりました。

  • 新しい:setting: `BROKER_HEARTBEAT_CHECKRATE` 設定が導入され、ブローカー接続のハートビートが監視される速度が変更されました。

    デフォルト値も3.0から2.0に変更されました。

  • celery.events.state.Stateがピクルス可能になりました。

    MherMovsisyanによって提供された修正。

  • celery.utils.functional.LRUCacheがピクルス可能になりました。

    MherMovsisyanによって提供された修正。

  • statsbroadcastコマンドにworkerspidが含まれるようになりました。

    MherMovsisyanによる寄稿。

  • ワーカーの現在の構成を取得するための新しいconfリモートコントロールコマンド。

    MherMovsisyanによる寄稿。

  • コードロック解除タスクのカウントダウン引数を変更する機能を追加します(問題#1146)。

    酒井淳による寄稿

  • beat:スケジューラーは、スケジュールの now() `メソッドを使用するようになりました。これにより、スケジュールは、現在の日付と時刻を取得するカスタムの方法を提供できます。

    RaphaëlSlinckxによる寄稿

  • Windowsまたはexecvが使用されている場合の構成モジュールのピクルスを修正しました(問題#1126)。

  • マルチプロセッシングロガーは、デフォルトでログレベルERRORで構成されるようになりました。

    3.0以降、マルチプロセッシングロガーはデフォルトで無効になっています( MP_LOG環境変数が設定されている場合にのみ構成されます)。


3.0.13

発売日
2013-01-07 04:00:00 pm UTC
リリースバイ
ソレムに聞く
  • 昆布2.5に依存

    • :pypi: `amqp` がデフォルトのトランスポートとして:pypi:` amqplib` に置き換わり、AMQP 0.9、およびコンシューマーキャンセル通知とハートビートを含むRabbitMQ拡張機能がサポートされるようになりました。

    • フェイルオーバー用の複数の接続URLのサポート。

    • 詳しくは昆布2.5変更ログをご覧ください。


  • 現在ビリヤード2.7.3.19に依存

  • プロデューサープールが親プロセスの接続プールインスタンスを継承したときに発生する可能性があったデッドロックの問題を修正しました。

  • --loaderオプションが再び機能するようになりました(問題#1066)。

  • celery アンブレラコマンド:すべてのサブコマンドで--workdirオプションがサポートされるようになりました(問題#1063)。

  • チェーンに含まれるグループがGroupResultsを提供するようになりました(問題#1057)

    以前は、グループ結果ではなく通常の結果が誤って追加されていましたが、現在は次のように機能します。

    >>> # [4 + 4, 4 + 8, 16 + 8]
    >>> res = (add.s(2, 2) | group(add.s(4), add.s(8), add.s(16)))()
    >>> res
    <GroupResult: a0acf905-c704-499e-b03a-8d445e6398f7 [
        4346501c-cb99-4ad8-8577-12256c7a22b1,
        b12ead10-a622-4d44-86e9-3193a778f345,
        26c7a420-11f3-4b33-8fac-66cd3b62abfd]>
  • チェーンは他のチェーンをチェーンし、部分的な引数を使用できるようになりました(問題#1057)。

    例:

    >>> c1 = (add.s(2) | add.s(4))
    >>> c2 = (add.s(8) | add.s(16))
    
    >>> c3 = (c1 | c2)
    
    >>> # 8 + 2 + 4 + 8 + 16
    >>> assert c3(8).get() == 38
  • サブタスクは、未登録のタスクで使用できるようになりました。

    名前だけでもサブタスクを指定できます。

    >>> s = subtask(task_name, args=(), kwargs=())
    >>> s.delay()
  • celery shell コマンドは、常に現在のディレクトリをモジュールパスに追加するようになりました。

  • ワーカーは、DST移行中にETA /カウントダウンが準備されたときに発生したpytz.AmbiguousTimeError例外を適切に処理するようになりました(問題#1061)。

  • force_execv:元のタスクモジュールのタスクシンボルが常に正しいアプリインスタンスを使用するようになりました(問題#1072)。

  • AMQPバックエンド:ポーリングされた結果メッセージを再公開するようになりました(result.ready()とその仲間を使用して、result.get()はこのバージョンではこれを行いません)。

  • Crontabのスケジュール値を「ラップアラウンド」できるようになりました

    これは、11-1のような値が[11, 12, 1]に変換されることを意味します。

    LorenAbramsによる寄稿。

  • multi stopwaitコマンドは、プロセスのpidを表示するようになりました。

    LorenAbramsによる寄稿。

  • :setting: `CELERY_ENABLE_UTC` の場合のETA /カウントダウンの処理が修正されました

    設定が無効になっています(問題#1065)。

  • Queue.as_dictを誤ってメッセージプロパティとして渡したために、多くの不要なプロパティがメッセージに含まれていました。

  • レート制限値を浮動小数点にすることができるようになりました

    これにより、文字列形式も拡張され、"0.5/s"などの値が機能するようになります。

    ChristophKrybusによる寄稿

  • ブロードキャストルーティングドキュメントのタイプミスを修正しました(問題#1026)。

  • タスクユーザーガイドのべき等に関する紛らわしいセクションを書き直しました。

  • デーモン化チュートリアルのタイプミスを修正しました(問題#1055)。

  • ドキュメントのいくつかのタイプミスを修正しました。

    MariusGedminasによる寄稿。

  • バッチ:イベントレットプールを使用するときに機能するようになりました。

    ThomasGraingerによる修正。

  • バッチ:celery.contrib.batchesに結果を送信する例を追加しました。

    ThomasGraingerによる寄稿。

  • MongoDBバックエンド:接続max_pool_size:setting: `CELERY_MONGODB_BACKEND_SETTINGS` で設定できるようになりました。

    CraigYounkinsによる寄稿。

  • 以前のバージョンの:pypi: `pytz` を使用する場合の問題を修正しました。

    Vladによって提供された修正。

  • :setting: `CELERY_TASK_RESULT_EXPIRES` 設定のデフォルト値を含むようにドキュメントが更新されました。

  • :pypi: `django-celery` チュートリアルの改善。

    Locker537による寄稿。

  • add_consumer制御コマンドは、新しいキューの追加を適切に永続化しないため、接続障害に耐えることができませんでした(問題#1079)。


3.0.12

発売日
2012-11-06 02:00 pm UTC
リリースバイ
ソレムに聞く
  • 昆布2.4.8に依存

    • [Redis]新しく改良された均等化キューサイクルアルゴリズム(Kevin McCarthy)。

    • [Redis]メッセージを復元するときにRedisベースのミューテックスを使用するようになりました。

    • [Redis] 1つの間隔で復元できるメッセージの数はありません

      より長く制限されています(ただし、unacked_restore_limit :setting: `トランスポートオプション ` )。

    • ハートビート値はブローカーURL(Mher Movsisyan)で指定できます。

    • Python 3(Jasper Bryant-Greene)でのmsgpackの問題を修正しました。


  • 現在ビリヤード2.7.3.18に依存

  • セロリは、PyDev / PyCharm / pylintなどの静的分析ツールで使用できるようになりました。

  • 開発ドキュメントはReadTheDocsに移動しました。

    新しいURLは次のとおりです。 http://docs.celeryproject.org/en/master

  • 新しい:setting: `CELERY_QUEUE_HA_POLICY` 設定は、RabbitMQを使用するときにキューのデフォルトのHAポリシーを設定するために使用されます。

  • 新しいメソッドTask.subtask_from_requestは、現在の要求を使用してサブタスクを返します。

  • 結果get_manyメソッドはタイムアウト引数を尊重しませんでした。

    RemigiuszModrzejewskiによる修正

  • generic_init.dスクリプトは、常にlogおよびpidディレクトリを作成するように CELERY_CREATE_DIRSの設定をサポートするようになりました(問題#1045)。

    これは/etc/default/celerydで設定できます。

  • Python 3.2での奇妙な昆布のインポートの問題を修正しました(問題#1034)。

  • ワーカー:ETAスケジューラーがミリ秒の精度を使用するようになりました(問題#1040)。

  • プログラムへの--config引数は、すべてのローダーでサポートされるようになりました。

  • :setting: `CASSANDRA_OPTIONS` 設定が文書化されました。

    JaredBielによる寄稿。

  • タスクメソッド(celery.contrib.methods)は、古いタスク基本クラスでは使用できません。そのモジュールのタスクデコレータは新しいものから継承するようになりました。

  • 最適化は熱心すぎて、一部のロギングメッセージが出力されませんでした。

  • celery.contrib.batchesが再び機能するようになりました。

  • bdist_rpm要件で欠落していた空白を修正しました(問題#1046)。

  • 名前でフィルタリングする前に、イベント状態のtasks_by_name適用制限。

    アレクサンダーAによって提供された修正。 ソスノフスキー。


3.0.11

発売日
2012-09-26 04:00 pm UTC
リリースバイ
ソレムに聞く
  • [security:low] generic-init.dスクリプトが/ var / logと/ var / runの権限を変更しました

    デーモン化チュートリアルでは、推奨されるディレクトリは次のとおりです。

    CELERYD_LOG_FILE="/var/log/celery/%n.log"
    CELERYD_PID_FILE="/var/run/celery/%n.pid"

    ただし、スクリプト自体では、デフォルトのファイルは/var/log/celery%n.log/var/run/celery%n.pidでした。したがって、ユーザーが構成によって場所を変更しなかった場合、ディレクトリ/var/logと [X172X ]が作成され、さらに悪いことに、権限と所有者が変更されます。

    この変更は、次のことを意味します。

    • デフォルトのpidファイルは/var/run/celery/%n.pidです

    • デフォルトのログファイルは/var/log/celery/%n.logです。

    • カスタムの場所が設定されていない場合にのみ、ディレクトリが作成され、権限が変更されます。


    ユーザーは、create-pathsサブコマンドを呼び出すことにより、パスを強制的に作成できます。

    $ sudo /etc/init.d/celeryd create-paths

    Celeryをアップグレードしてもinit-scriptsは更新されません

    init-scriptsを更新するには、ソース管理からファイルを再ダウンロードして、手動で更新する必要があります。 バージョン3.0.xのinit-scriptsは次の場所にあります。

  • 現在ビリヤード2.7.3.17に依存

  • アプリが複数回初期化された場合のリクエストスタック保護を修正しました(問題#1003)。

  • システムのタイムゾーンが構成済みのタイムゾーンと同じでない場合でも、ETAタスクが正しく機能するようになりました(問題#1004)。

  • タスクがプールに送信されたが、プールプロセスによってまだ確認されていない場合、タスクの終了が機能するようになりました(問題#1007)。

    AlexeyZatelepinによる修正

  • タスクを終了すると、タスクの状態が正しく更新されて取り消され、task-revokedイベントが送信されるようになりました。

  • 汎用ワーカーinit-scriptは、デフォルトでワーカーがシャットダウンするのを待機するようになりました。

  • マルチ:–appオプションを解析しなくなりました(問題#1008)。

  • マルチ:stop_verifyコマンドの名前がstopwaitに変更されました。

  • デーモン化:作業ディレクトリがに変更されるまで、pidfile / logfileの作成を遅らせるようになりました。

  • celeryworker および celery beat コマンドは、--no-colorオプションを尊重するようになりました(問題#999)。

  • イベントレットの例のタイプミスを修正しました(問題#1000)

    ブライアンビショップによって提供された修正。 バグ#1000を開いて、おめでとうございます!

  • Ignoreを発生させるタスクが承認されるようになりました。

  • ビート:sending due taskログにエントリの名前が表示されるようになりました。


3.0.10

発売日
2012-09-20 05:30 pm BST
リリースバイ
ソレムに聞く
  • 昆布2.4.7に依存

  • 現在、ビリヤード2.7.3.14に依存しています

    • Djangoおよび1.4より前のプロジェクト(setup_environ)を使用すると、起動時にクラッシュする問題を修正しました。

    • ハードタイム制限は、TERMの直後にKILLシグナルを送信して、シグナルハンドラーがC拡張機能によってブロックされているプロセスを終了するようになりました。

    • C拡張機能をビルドできない場合でも、ビリヤードがインストールされるようになりました。

      RabbitMQ / Redis以外のトランスポートを使用している場合(またはその他の理由で強制execvを使用している場合)は、C拡張機能をビルドすることをお勧めします。

    • プールはcurrent_process().index属性を設定するようになりました。この属性を使用して、プール内のプロセスと同じ数のログファイルを作成できます。


  • キャンバス:コード/グループ/チェーンが呼び出されたときに状態を変更しなくなりました

    以前にコード/グループ/チェーンを呼び出すと、サブタスクのIDが次のように変更されていました。

    >>> c = chord([add.s(2, 2), add.s(4, 4)], xsum.s())
    >>> c()
    >>> c() <-- call again

    2回目は、タスクのIDは前の呼び出しと同じになります。 これは修正され、サブタスクを呼び出してもオプションが変更されないようになりました。

  • キャンバス:コードを別のタスクにチェーンすることが機能するようになりました(問題#965)。

  • ワーカー:相対インポートが使用されている場合にリクエストスタックが破損する可能性があるバグを修正しました。

    失敗したタスクの結果(NoneType does not have id attribute)を送信しようとすると、通常、問題は例外として現れました。

    修正はSamCookeによって提供されました。

  • タスクはIgnoreを発生させて、戻った後の状態またはイベントの更新をスキップできるようになりました。

    例:

    from celery.exceptions import Ignore
    
    @task
    def custom_revokes():
        if redis.sismember('tasks.revoked', custom_revokes.request.id):
            raise Ignore()
  • ワーカーは、リクエスト/タスクスタックが最初のTask.__call__によって変更されていないことを確認するようになりました。

    これは、カスタムタスククラスが__call__を定義し、super()とも呼ばれる場合、以前は問題でした。

  • 問題のため、高速ローカル最適化が無効になっており、 USE_FAST_LOCALS属性を設定することによってのみ有効にできます。

  • ワーカー:シャットダウン時にデフォルトのソケットタイムアウトを5秒に設定して、ソケットの読み取りが壊れても適切なシャットダウンが妨げられないようにしました(問題#975)。

  • 後期イベントレット/イベントパッチに関連するその他の修正。

  • 現実と同期していない設定のドキュメント:

    • :setting: `CELERY_TASK_PUBLISH_RETRY`

      デフォルトでは無効として文書化されていますが、2.5の変更ログに記載されているように、2.5以降はデフォルトで有効になっています。

    • :setting: `CELERY_TASK_PUBLISH_RETRY_POLICY`

      デフォルトのmax_retriesは100に設定されていましたが、3として文書化されており、interval_maxは1に設定されていましたが、0.2として文書化されていました。 デフォルト設定は、最初に文書化されたとおり、3と0.2に設定されています。

    MattLongによる修正。

  • ワーカー:接続が確立されて失われたときのログメッセージが改善されました。

  • 「0」のCrontabスケジュール値のreprは「*」である必要があります(問題#972)。

  • 取り消されたタスクは、ワーカーの予約済み/アクティブ状態から削除されるようになりました(問題#969)

    AlexeyZatelepinによって提供された修正。

  • gevent:gevent.Timeoutを使用したハードタイム制限をサポートするようになりました。

  • ドキュメント:init-scriptsへのリンクは、開発ブランチ(マスター)ではなく3.0ブランチを指すようになりました。

  • ドキュメント:シグナルユーザーガイドのタイプミスを修正しました(問題#986)。

    instance.app.queues-> instance.app.amqp.queues

  • イベントレット/イベント:ワーカーが新しいグリーンレットのカスタムアプリを適切に設定しませんでした。

  • イベントレット/イベント:ワーカーが接続損失から回復できないバグを修正しました(問題#959)。

    また、geventのバグが疑われるため、geventの使用時に:setting: `BROKER_CONNECTION_TIMEOUT` 設定が無効になりました。


3.0.9

発売日
2012-08-31 06:00 pm BST
リリースバイ
ソレムに聞く
  • Djangoとデータベーススケジューラのユーザーへの重要な注意!

    最近、定期的なタスクのタイムゾーンの問題が修正されましたが、誤ったタイムゾーンがデータベースにすでに保存されている可能性があるため、修正を機能させるには、last_run_atフィールドをリセットする必要があります。

    これを行うには、次のコマンドを実行します。

    $ python manage.py shell
    >>> from djcelery.models import PeriodicTask
    >>> PeriodicTask.objects.update(last_run_at=None)

    タイムゾーンまたは:setting: `CELERY_ENABLE_UTC` 設定を変更する場合も、これを行う必要があります。

  • :setting: `CELERY_ENABLE_UTC` 設定についての注意。

    以前にこれを無効にして、定期的なタスクをタイムゾーンで機能させるだけだった場合は、再度有効にすることをお勧めします

  • 現在、PyPy + Jythonのインストールを修正するKombu2.4.5に依存しています。

  • :setting: `CELERY_ENABLE_UTC` が無効になっている場合のタイムゾーンのバグを修正しました(問題#952)。

  • celerybeatアップグレードメカニズムのタイプミスを修正しました(問題#951)。

  • ロギングに対する exc_info 引数が解決されていることを確認してください(問題#899)。

  • Python 3.2とスレッド結合タイムアウトオーバーフローの問題を修正しました(問題#796)。

  • Python2.5のテストケースがときどき壊れていました。

  • ユニットテストスイートはPyPy1.9に合格しました。

  • アプリインスタンスがwithステートメントをサポートするようになりました。

    これにより、終了時に新しい@close()メソッドが呼び出され、プール接続を閉じるようにアプリの後にクリーンアップされます。

    これは、「一時的な」アプリなど、アプリを動的に作成する場合にのみ必要であることに注意してください。

  • サブタスクをチェーンにパイプするためのサポート。

    例えば:

    pipe = sometask.s() | othertask.s()
    new_pipe = mytask.s() | pipe

    SteveMorinによる寄稿。

  • ピクルス以外のシリアライザーでのグループ結果の問題を修正しました。

    SteeveMorinによる修正。


3.0.8

発売日
2012-08-29 05:00 pm BST
リリースバイ
ソレムに聞く
  • 昆布2.4.4に依存するようになりました

  • :pypi: `amqplib` の問題を修正し、より大きなメッセージペイロードを受信しました(問題#922)。

    この問題は、ワーカーがハングするか、Framing error例外が表示される場合があります。

    新しいpyamqp://トランスポートのユーザーは、:pypi: `amqp` 0.9.3にアップグレードする必要があります。

  • ビート:間隔とCrontabスケジュールに関する別のタイムゾーンのバグを修正しました(問題#943)。

  • ビート:タイムゾーンが変更された場合、スケジュールファイルが自動的にクリアされるようになりました。

    以前のバージョンから3.0.8にアップグレードすると、スケジュールもクリアされます。これにより、最初のタイムゾーン情報が登録されます。

  • イベント::event: `worker-heartbeat` イベントに、処理済みのアクティブなカウントフィールドが含まれるようになりました。

    MherMovsisyanによる寄稿。

  • エラーメールと新しいタスククラスのエラーを修正しました(問題#931)。

  • BaseTask.__call__は、モンキーパッチが適用されている場合、最適化されなくなりました。

  • gevent使用時のシャットダウンの問題を修正しました(問題#911および問題#936)。

    ThomasMesonによる修正。


3.0.7

発売日
2012-08-24 05:00 pm BST
リリースバイ
ソレムに聞く
  • 定期的なタスクとタイムゾーンに関するいくつかの問題を修正します(問題#937)。

  • 昆布2.4.2に依存

    • Redis:競合状態のクラッシュを修正

    • ブローカー接続の確立を再試行するときに発生する可能性があった無限ループを修正します。


  • デーモンは、標準のファイル記述子を/dev/nullにリダイレクトするようになりました。

    デフォルトでは、標準の出力も代わりにロガーにリダイレクトされますが、:setting: `CELERY_REDIRECT_STDOUTS` 設定を変更することでこれを無効にできます。

  • eventlet / geventのパッチ適用が遅すぎる場合に発生する可能性のある問題を修正します。

  • LoggingProxyfileno()を定義しなくなりました(問題#928)。

  • コードロック解除タスクの結果は無視されるようになりました。

    SteeveMorinによる修正。

  • 結果の有効期限が無効になっている場合、Cassandraバックエンドが機能するようになりました。

    SteeveMorinによる修正。

  • トレースバックオブジェクトは、文字列表現ではなくシグナルハンドラーに渡されるようになりました。

    AdamDePueによって提供された修正。

  • セロリコマンド:拡張子が名前でソートされるようになりました。

  • リグレッションにより、:event: `task-failed` イベントが、文字列表現ではなく例外オブジェクトとともに送信されました。

  • ワーカーデーモンは、エラーをキャッチするためにデーモン化する前にpidファイルを作成しようとしましたが、このファイルはすぐには解放されませんでした(問題#923)。

  • Jythonの互換性を修正しました。

  • billiard.forking_enableは、プロセスプールだけでなくすべてのプールから呼び出されたため、ビリヤードC拡張機能がインストールされていないと、役に立たない警告が表示されていました。


3.0.6

発売日
2012-08-17 11:00 p.mp.m. ソレムに聞く
  • 昆布2.4.0に依存するようになりました

  • 現在、ビリヤード2.7.3.12に依存しています

  • Redis:Celeryは、キューにメッセージがない場合は常にメッセージの復元を試みるようになりました。

  • Crontabスケジュールは、:setting: `CELERY_TIMEZONE` 設定を適切に尊重するようになりました。

    この設定が設定されていない限り、CrontabスケジュールはデフォルトでUTC時間を使用することに注意することが重要です。

    発行#904および:pypi: `django-celery` #150。

  • billiard.enable_forkingは、プロセスプールによってのみ設定されるようになりました。

  • トランスポートは、セロリレポート(問題#913)によって正しく表示されるようになりました。

  • –app 引数は、最後の部分がモジュール名の場合に機能するようになりました(問題#921)。

  • ピクルできない例外の問題を修正しました(ビリヤード#12)。

  • task_name属性をEagerResultに追加します。これは常にNoneです(問題#907)。

  • celery.taskの古いタスククラスは、デフォルトで魔法のクワーグを受け入れなくなりました(問題#918)。

    ずっと前の回帰はこれらの魔法のクワーグを無効にしました、そして誰もそれについて不平を言っていないので、私たちは今それを修正するインセンティブを持っていません。

  • inspect reserved制御コマンドが正しく機能しませんでした。

  • celery およびcelery.taskモジュールで動的に作成された属性を明示的に指定することにより、静的分析用のツールでより適切に機能するはずです。

  • タスクを終了すると、WorkerLostErrorではなくRevokedTaskErrorになります。

  • AsyncResult.revokeは、terminateおよびsignal引数を受け入れるようになりました。

  • :event: `task-revoked` イベントに、terminatedsignum、およびexpiredの新しいフィールドが含まれるようになりました。

  • TaskRevokedErrorに対する議論は、revokedexpired、またはterminatedの理由の1つになりました。

  • 古いタスククラスは、push_requestおよびpop_requestclassmethodを使用しなくなりました(問題#912)。

  • GroupResultは、children属性をサポートするようになりました(問題#916)。

  • AsyncResult.collectは、intermediate引数を尊重するようになりました(問題#917)。

  • ドキュメントのサンプルタスクを修正しました(問題#902)。

  • イベントレットが修正され、環境にできるだけ早くパッチが適用されるようになりました。

  • eventlet:eventletにパッチを適用する前に、スレッドに依存するCelery関連のモジュールがインポートされた場合に警告するようになりました。

  • モニタリングガイドのイベントとカメラの例を改善しました。

  • コマンドをロードできない場合、celeryコマンドのsetuptoolsエントリポイントを無効にします。

  • タスクガイドの壊れたdump_requestの例を修正しました。


3.0.5

発売日
2012-08-01 04:00 pm BST
リリースバイ
ソレムに聞く
  • 昆布2.3.1+ビリヤード2.7.3.11に依存

  • -Bオプション(cannot pickle thread.lock objects)のバグを修正しました(問題#894 +問題#892、+ :pypi: `django-celery` #154)。

  • :control: `restart_pool` 制御コマンドでは、:setting:` CELERYD_POOL_RESTARTS` 設定を有効にする必要があります。

    再起動コマンドが依存するマルチプロセッシングイベントが多くのセマフォ/ファイル記述子の作成を担当し、一部の環境で問題が発生するため、この変更が必要でした。

  • chain.applyは、引数を最初のタスクに渡すようになりました(問題#889)。

  • 監視ユーザーガイド(問題#396)の:pypi: `django-celery` モニターに対する以前の秘密のオプションを文書化しました。

  • 古い変更ログは、シリーズごとに個別のドキュメントに整理されるようになりました。履歴を参照してください。


3.0.4

発売日
2012-07-26 07:00 pm BST
リリースバイ
ソレムに聞く
  • 昆布2.3に依存

  • 新しい実験的なスタンドアロンCeleryモニター:Flower

    詳細については、 Flower:Real-time Celery web-monitor を参照してください。

    MherMovsisyanによる寄稿。

  • 新しいpyamqp://トランスポートを使用する場合、AMQPハートビートをサポートするようになりました。

    • :pypi: `amqp` トランスポートでは、:pypi:` amqp` ライブラリをインストールする必要があります。

      $ pip install amqp
    • 次に、トランスポートURLプレフィックスをpyamqp://に設定する必要があります。

    • デフォルトのハートビート値は10秒ですが、これは:setting: `BROKER_HEARTBEAT` 設定を使用して変更できます。

      BROKER_HEARTBEAT = 5.0
    • ブローカーのハートビートが10秒に設定されている場合、ハートビートは5秒ごとに監視されます(ハートビートレートの2倍)。

    詳細については、昆布2.3変更ログを参照してください。

  • pyamqp://トランスポートを使用して、RabbitMQコンシューマーキャンセル通知をサポートするようになりました。

    これは、クラスターでRabbitMQを実行する場合に不可欠です。

    詳細については、昆布2.3変更ログを参照してください。

  • 配信情報が直接渡されることはなくなりました。

    SQSトランスポートが配信情報マッピングにピクルスできないオブジェクトを追加することが発見されたため、ホワイトリストの使用に戻る必要がありました。

    このバグを修正すると、SQSトランスポートが再び機能するようになります。

  • タスクが取り消されたときにセマフォが適切に解放されませんでした(問題#877)。

    これにより、タスクが飲み込まれ、ワーカーが再起動するまで解放されない可能性があります。

    問題をデバッグしてくれたHynekSchlawackに感謝します。

  • タスクを再試行すると、リンクされたタスクも転送されるようになりました。

    これは、タスクがチェーンの一部である(または他の方法でリンクされている)場合、タスクが再試行されても、再試行が成功するとチェーン内の次のタスクが実行されることを意味します。

  • コード:コードロック解除タスクへの間隔およびその他のキーワード引数の設定をサポートするようになりました。

    • 間隔は、コードサブタスクkwargsの一部として設定できるようになりました。

      chord(header)(body, interval=10.0)
    • さらに、コードロック解除タスクは、何も指定されていない場合に使用されるTask.default_retry_delayオプションを尊重するようになりました。これは、注釈を使用してデフォルトの間隔を変更できることも意味します。

      CELERY_ANNOTATIONS = {
          'celery.chord_unlock': {
              'default_retry_delay': 10.0,
          }
      }


  • 新しい@add_defaults()メソッドは、アプリケーション構成に新しいデフォルト構成辞書を追加できます。

    例えば:

    config = {'FOO': 10}
    
    app.add_defaults(config)

    app.conf.update(config)と同じですが、データがコピーされず、ワーカーが子プロセスを生成するときにデータがpickle化されない点が異なります。

    さらに、このメソッドは呼び出し可能オブジェクトを受け入れます。

    def initialize_config():
        # insert heavy stuff that can't be done at import time here.
    
    app.add_defaults(initialize_config)

    これは、Celery構成が実際に使用されるまで発生しないことを除いて、上記と同じことを意味します。

    例として、CeleryはFlaskアプリの構成を怠惰に使用できます。

    flask_app = Flask()
    app = Celery()
    app.add_defaults(lambda: flask_app.config)
  • 取り消されたタスクは、結果バックエンドで取り消されたものとしてマークされませんでした(問題#871)。

    HynekSchlawackによって提供された修正。

  • epoll ポーラーオブジェクトが閉じられた場合、イベントループが適切に処理するようになりました(問題#882)。

  • funtests/test_leak.pyの構文エラーを修正しました

    CatalinIacobによって提供された修正。

  • グループ/チャンク:空のタスクリストを受け入れるようになりました(問題#873)。

  • 新しいメソッド名:

    • Celery.default_connection()@connection_or_acquire()

    • Celery.default_producer()@producer_or_acquire()

    古い名前は、下位互換性のために引き続き機能します。


3.0.3

発売日
2012-07-20 09:17 pm BST
リリースバイ
ソレムに聞く
  • :pypi: `amqplib` は、delivery_infoの一部としてチャネルオブジェクトを渡しますが、ピクルスできないため、削除します。


3.0.2

発売日
2012-07-20 04:00 pm BST
リリースバイ
ソレムに聞く
  • バグにより、次のタスクオプションがデフォルトを取得しませんでした

    構成(問題#867 +問題#858)

  • タスクリクエスト:delivery_infoがそのまま渡されるようになりました(問題#807)。

  • ETA引数は、タイムゾーンが設定された日時をサポートするようになりました(問題#855)。

  • ワーカーのバナーに自動スケール設定が間違った順序で表示されていました(問題#859)。

  • 拡張コマンドは、同時実行性が設定された後にロードされるようになり、イベントレットのパッチ適用などに干渉しないようになりました。

  • スレッドプールのバグを修正しました(問題#863)

  • タスク失敗ハンドラーがsys.exc_info()のフィールドを混同しました。

    RinatShigapovによって提供された修正。

  • ドキュメントのタイプミスと文言を修正しました。

    PaulMcMillanによる修正

  • 新しい設定::setting: `CELERY_WORKER_DIRECT`

    有効にすると、各ワーカーは、タスクを特定のワーカーにルーティングするために使用できる専用のキューから消費します。

  • add Consumer remotecontrolコマンドのいくつかのエッジケースのバグを修正しました。

  • migrate:setting: `CELERY_WORKER_DIRECT` が有効になっている場合に、タスクをフィルタリングして特定のワーカーに移動できるようになりました。

    その他の改善点として、次の機能が追加されました。

    • move_direct(filterfun, **opts)

    • move_direct_by_id(task_id, worker_hostname, **opts)

    • move_direct_by_idmap({task_id: worker_hostname, ...}, **opts)

    • move_direct_by_taskmap({task_name: worker_hostname, ...}, **opts)


  • default_connection()は、プール引数を受け入れるようになりました。falseに設定すると、プールから接続を取得する代わりに、新しい接続が作成されます。

  • 新しいシグナル::signal: `celeryd_after_setup`

  • デフォルトのローダーは、構成モジュールから小文字の属性を保持するようになりました。


3.0.1

発売日
2012-07-10 06:00 pm BST
リリースバイ
ソレムに聞く
  • 昆布2.2.5に依存するようになりました

  • inspectはlimit引数をサポートするようになりました:

    myapp.control.inspect(limit=1).ping()
  • Beat:タイムゾーン対応の日時で動作するようになりました。

  • from celery import Taskを継承するタスククラスが誤ってaccept_magic_kwargsを有効にしました。

  • inspect scheduledのバグを修正しました(問題#829)。

  • Beat:UTCにアップグレードするためにスケジュールをリセットするようになりました。

  • celeryworker コマンドがeventlet / geventで機能するようになりました。

    以前は、環境に十分早くパッチを適用していませんでした。

  • celery コマンドは、setuptoolsエントリポイントを使用した拡張コマンドをサポートするようになりました。

    ライブラリは、次のようなエントリポイントを追加することにより、 celery コマンドにコマンドを追加できます。

    setup(
        entry_points=[
            'celery.commands': [
                'foo = my.module:Command',
        ],
    ],
    ...)

    その場合、コマンドはcelery.bin.base.Commandのインターフェースをサポートする必要があります。

  • contrib.migrate:タスクをあるキューから別のキューに移動するための新しいユーティリティ。

    • move_tasks()

    • move_task_by_id()


  • :event: `task-sent` イベントに、exchangeフィールドとrouting_keyフィールドが含まれるようになりました。

  • Python3へのインストールに関するバグを修正します。

    JedSmithによる修正。


3.0.0(Chiastic Slide)

発売日
2012-07-07 01:30 pm BST
リリースバイ
ソレムに聞く

Celery 3.0(Chiastic Slide)の新機能を参照してください。