PythonライブラリノックDay110 外部ライブラリ #プログラミング #python #library

テクノロジー



Pythonのライブラリの紹介です。それぞれの説明と使用例は以下になります。

L 328. Dramatiq(スケーラブルなタスクキュー)
Dramatiq は、シンプルかつ高速でスケーラブルなタスクキューを実現する Python ライブラリです。RabbitMQ や Redis をブローカーとして利用できます。

▼主な機能
高速な非同期処理
RabbitMQ / Redis サポート
ミドルウェアによる拡張性(ログ、リトライ、結果保存など)
型ヒントのある関数もサポート

▼使い方(Redisを使う例)
#インストール
pip install dramatiq dramatiq[redis]

#タスク定義(tasks.py)
import dramatiq

@dramatiq.actor
def say_hello(name):
print(f”Hello, {name}!”)

#ワーカー起動
dramatiq tasks

#タスク呼び出し
from tasks import say_hello
say_hello.send(“Hiroyuki”)

L 329. RQ(タスクキューライブラリ)
RQ(Redis Queue)は、Redis をバックエンドにした非常にシンプルな Python 用のタスクキューライブラリです。Flask や Django とも統合しやすいです。

▼主な機能
Redis ベースのキュー
最小限のセットアップで導入可能
Web ダッシュボードあり(rq-dashboard)
Job のスケジューリング・結果保存対応

▼使い方
#インストール
pip install rq

#タスク定義(tasks.py)
def add(x, y):
return x + y

#タスク送信
from redis import Redis
from rq import Queue
from tasks import add

q = Queue(connection=Redis())
job = q.enqueue(add, 3, 4)
print(job.result) # None(非同期)

#ワーカー起動
rq worker

L 330. Huey(小型タスクキュー)
Huey は、シンプルかつ堅牢な小型タスクキューです。RedisまたはSQLiteなどをバックエンドに使え、スケジュール実行にも対応しています。

▼主な機能
定期タスク(cron風)
結果の保持やリトライ機能
SQLite も使えるため Redis 不要で簡易利用可
Django 統合サポートあり

▼使い方(Redisを使用する例)
#インストール
pip install huey[redis]

#タスク定義(tasks.py)
from huey import RedisHuey
import time

huey = RedisHuey()

@huey.task()
def slow_task(n):
time.sleep(n)
return f”Slept for {n} seconds”

#タスク送信
from tasks import slow_task
result = slow_task(3)
print(result.get(blocking=True)) # “Slept for 3 seconds”

#ワーカー起動
huey_consumer.py tasks.huey

Comments

Copied title and URL