コンテンツにスキップ

Python/Celery

出典: フリー教科書『ウィキブックス(Wikibooks)』

Python/Celeryの概要

[編集]

Celery(セロリー)は、Pythonで利用できるオープンソースの分散タスクキューライブラリです。Celeryは非同期処理をサポートし、タスクを非同期に実行することで、Webアプリケーションやバックエンドの処理を効率的に分散させることができます。Celeryは、タスクのスケジューリング、タスクの状態管理、タスクの優先度付けなどの機能を提供します。さらに、Celeryは他のツールと組み合わせて使用することができ、大規模なプロジェクトやリアルタイム処理に適したツールとして広く利用されています。

主な機能

[編集]

1. 分散タスクの管理: Celeryはタスクキューを使用して分散タスクの管理を行います。タスクは非同期に実行され、タスクの進行状況を監視することができます。

2. スケジューリング: Celeryはタスクの実行をスケジュールする機能を提供します。特定の日時や間隔でタスクを実行することができます。

3. ワーカー: Celeryはタスクの実行を担当するワーカーを複数起動できます。これにより、タスクの処理を並列化し、高いスループットを実現します。

4. タスクのリトライ: Celeryはタスクの実行に失敗した場合にリトライを行う機能をサポートしています。タスクが成功するまで自動的にリトライを繰り返すことができます。

5. タスクの優先度付け: Celeryはタスクの優先度付けを行うことができます。重要なタスクを優先的に実行することができます。

Python/Celeryのコード例

[編集]

コードは未検証です。問題があれば修正お願いします、

タスクの定義と実行

[編集]
from celery import Celery

# Celeryアプリの初期化
app = Celery('tasks', broker='pyamqp://guest@localhost//')

# タスクの定義
@app.task
def add(x, y):
    return x + y

# タスクの実行
result = add.delay(4, 5)
print(result.get())

タスクのスケジューリング

[編集]
from celery import Celery
from celery.schedules import crontab

# Celeryアプリの初期化
app = Celery('tasks', broker='pyamqp://guest@localhost//')

# タスクの定義
@app.task
def say_hello():
    print('Hello, Celery!')

# タスクのスケジュール設定
app.conf.beat_schedule = {
    'say-hello-every-minute': {
        'task': 'tasks.say_hello',
        'schedule': crontab(minute='*/1'),
    },
}

Celeryのインストール方法

[編集]

Celeryはpipコマンドを使用して簡単にインストールすることができます。以下のコマンドを実行してください:

pip install celery