チュートリアルの単純な非同期タスクツール--rq使用
RQは、非同期タスクのためのシンプルで軽量なツールです。
ユーザーがサイトで長い(以上2分以内)で要求を開始する場合、同期方式ならば、サーバは、時間の経過とともに返されます。
今度は、仕事を得るとポーリングの結果を実装するには、または他の手段によって進行し、その後、非同期リクエスト、ユーザーが開始要求、ジョブを実行する別のプロセスをスローするようにサーバーを使用して、ユーザーにすぐに戻り、およびする必要があります。
RQ効果は同等です「別のプロセス。」
インストール1.
インストールパッケージのpython-RQ
pip install rq
2.rq_worker
rq_workerは、別のプロセスであるあなたが実行し、実行するために必要なタスクをリッスンします。
rq_worker.py
import redis
from rq import Worker, Queue, Connection
listen = ['high', 'default', 'low'] pool = redis.ConnectionPool(db=0, host='localhost', port=6379, password='passwd') redis_conn = redis.Redis(connection_pool=pool) if __name__ == '__main__': with Connection(redis_conn): worker = Worker(map(Queue, listen)) worker.work()
スタート
python rq_worker.py
RQの仕事を公開3
機能1)定義されたジョブの実行
funcs.py
def test_func(url, name):
return name
注意モジュールを公開する機能やタスクはもはやPythonのファイルで作業を行うことができますが唯一のインポートでインポートすることができます。
印刷情報はrq_workerの実行の過程でここに表示されます。
from funcs import get_url
from rq import Queue,job
pool = redis.ConnectionPool(db=0, host='localhost', port=6379, password='passwd') redis_conn = redis.Redis(connection_pool=pool) if __name__ == '__main__': rq_queue=Queue(connection=redis_conn) job=rq_queue.enqueue(test_func, 'http://www.baidu.com',name='kevin')
キューは、クラス(この例では、プロジェクトは、単一の実施形態にすることができる)インスタンス化する
タスクを発行し、エンキュー方法。最初のパラメータが関数の名前を行う関数への入力パラメータ、続いて行われ、それは引数もkwargsからとすることができることができます。
ここでは、クラスのジョブのインスタンスを返します。
4.レビュージョブ実行の状況
公開された返されたジョブジョブ・クラス定義ファイルがrq.jobに位置している、あなたは主にAPIで使用し、そのAPIを見て行くことができます:
print job.result # 如果函数执行正常,返回作业的return,如果有异常,返回None,如果作业没执行,也是返回None
print job.get_status() # 获取作业的状态 queued还在队列中,failed:执行失败,finished 完成
job.set_id('my_id') # 为作业设置一个id,如果没有set_id的操作,作业的id会是一个随机的唯一的字符串 my_id = job.get_id() # 获取作业的id print job.to_dict() # 把job实例转化成一个字典 job.delete() # 从redis中把该作业删除掉 job.cancel() # 取消作业,尽管作业已经被执行,也可以取消 from rq import job job.Job.exists(my_id, redis_conn) # 返回是否存在该id的作业 my_job = job.Job(my_id, redis_conn) #创建该作业id的实例
分散Pythonのフレームセロリパラレル
セロリの公式ウェブサイト:http://www.celeryproject.org
セロリ、英語での公式文書:http://docs.celeryproject.org/en/latest/index.html
セロリ公式文書の中国語版:http://docs.jinkan.org /ドキュメント/セロリ
セロリの設定:http://docs.jinkan.org/docs/celery/configuration.html#configuration
参考:http://www.cnblogs.com/landpack/p/5564768.html http://blog.csdn.net/happyAnger6/article/details/51408266
http://www.cnblogs.com/forward-wang/p/5970806.html
分散キューアーティファクトセロリ:https://segmentfault.com/a/1190000008022050
セロリベストプラクティス:https://my.oschina.net/siddontang/blog/284107
セロリ分散タスクキュークイックスタート:HTTP:// WWW .cnblogs.com / alex3714 / P / 6351797.html
:セロリクイックスタートチュートリアルアーティファクト非同期タスクhttps://blog.csdn.net/chenqiuge1984/article/details/80127446
セロリ定期的に使用するタスクマネージャのPythonのピース:HTTP:// student-lp.iteye.com/blog/2093397
セロリアーティファクト非同期タスク:http://python.jobbole.com/87086/
セロリタスクスケジューリングの練習のためのフレームワーク:https://blog.csdn.net/qq_28921653/article/details/ 79555212
セロリ-4.1ユーザーガイド:モニタリングと管理ガイド:https://blog.csdn.net/libing_thinking/article/details/78592801
セロリインストールして使用:https://blog.csdn.net/u012325060/article/details/ 79292243
セロリの研究ノート(A):https://blog.csdn.net/sdulsj/article/details/73741350
RQは、非同期タスクのためのシンプルで軽量なツールです。
ユーザーがサイトで長い(以上2分以内)で要求を開始する場合、同期方式ならば、サーバは、時間の経過とともに返されます。
今度は、仕事を得るとポーリングの結果を実装するには、または他の手段によって進行し、その後、非同期リクエスト、ユーザーが開始要求、ジョブを実行する別のプロセスをスローするようにサーバーを使用して、ユーザーにすぐに戻り、およびする必要があります。
RQ効果は同等です「別のプロセス。」
インストール1.
インストールパッケージのpython-RQ
pip install rq
2.rq_worker
rq_workerは、別のプロセスであるあなたが実行し、実行するために必要なタスクをリッスンします。
rq_worker.py
import redis
from rq import Worker, Queue, Connection
listen = ['high', 'default', 'low'] pool = redis.ConnectionPool(db=0, host='localhost', port=6379, password='passwd') redis_conn = redis.Redis(connection_pool=pool) if __name__ == '__main__': with Connection(redis_conn): worker = Worker(map(Queue, listen)) worker.work()
スタート
python rq_worker.py
RQの仕事を公開3
機能1)定義されたジョブの実行
funcs.py
def test_func(url, name):
return name
注意モジュールを公開する機能やタスクはもはやPythonのファイルで作業を行うことができますが唯一のインポートでインポートすることができます。
印刷情報はrq_workerの実行の過程でここに表示されます。
from funcs import get_url
from rq import Queue,job
pool = redis.ConnectionPool(db=0, host='localhost', port=6379, password='passwd') redis_conn = redis.Redis(connection_pool=pool) if __name__ == '__main__': rq_queue=Queue(connection=redis_conn) job=rq_queue.enqueue(test_func, 'http://www.baidu.com',name='kevin')
キューは、クラス(この例では、プロジェクトは、単一の実施形態にすることができる)インスタンス化する
タスクを発行し、エンキュー方法。最初のパラメータが関数の名前を行う関数への入力パラメータ、続いて行われ、それは引数もkwargsからとすることができることができます。
ここでは、クラスのジョブのインスタンスを返します。
4.レビュージョブ実行の状況
公開された返されたジョブジョブ・クラス定義ファイルがrq.jobに位置している、あなたは主にAPIで使用し、そのAPIを見て行くことができます:
print job.result # 如果函数执行正常,返回作业的return,如果有异常,返回None,如果作业没执行,也是返回None
print job.get_status() # 获取作业的状态 queued还在队列中,failed:执行失败,finished 完成
job.set_id('my_id') # 为作业设置一个id,如果没有set_id的操作,作业的id会是一个随机的唯一的字符串 my_id = job.get_id() # 获取作业的id print job.to_dict() # 把job实例转化成一个字典 job.delete() # 从redis中把该作业删除掉 job.cancel() # 取消作业,尽管作业已经被执行,也可以取消 from rq import job job.Job.exists(my_id, redis_conn) # 返回是否存在该id的作业 my_job = job.Job(my_id, redis_conn) #创建该作业id的实例
分散Pythonのフレームセロリパラレル
セロリの公式ウェブサイト:http://www.celeryproject.org
セロリ、英語での公式文書:http://docs.celeryproject.org/en/latest/index.html
セロリ公式文書の中国語版:http://docs.jinkan.org /ドキュメント/セロリ
セロリの設定:http://docs.jinkan.org/docs/celery/configuration.html#configuration
参考:http://www.cnblogs.com/landpack/p/5564768.html http://blog.csdn.net/happyAnger6/article/details/51408266
http://www.cnblogs.com/forward-wang/p/5970806.html
分散キューアーティファクトセロリ:https://segmentfault.com/a/1190000008022050
セロリベストプラクティス:https://my.oschina.net/siddontang/blog/284107
セロリ分散タスクキュークイックスタート:HTTP:// WWW .cnblogs.com / alex3714 / P / 6351797.html
:セロリクイックスタートチュートリアルアーティファクト非同期タスクhttps://blog.csdn.net/chenqiuge1984/article/details/80127446
セロリ定期的に使用するタスクマネージャのPythonのピース:HTTP:// student-lp.iteye.com/blog/2093397
セロリアーティファクト非同期タスク:http://python.jobbole.com/87086/
セロリタスクスケジューリングの練習のためのフレームワーク:https://blog.csdn.net/qq_28921653/article/details/ 79555212
セロリ-4.1ユーザーガイド:モニタリングと管理ガイド:https://blog.csdn.net/libing_thinking/article/details/78592801
セロリインストールして使用:https://blog.csdn.net/u012325060/article/details/ 79292243
セロリの研究ノート(A):https://blog.csdn.net/sdulsj/article/details/73741350