Source

django-celery-about / source / celery.rst

Full commit

Celery

Celeryとは?

  • http://celeryproject.org/

    Celery is an asynchronous task queue/job queue based on distributed message passing. It is focused on real-time operation, but supports scheduling as well.

    The execution units, called tasks, are executed concurrently on a single or more worker servers using multiprocessing, Eventlet, or gevent.

    Tasks can execute asynchronously (in the background) or synchronously (wait until ready).

    Celery is used in production systems to process millions of tasks a day.

Task Queue(タスクキュー)

  • http://docs.celeryproject.org/en/latest/getting-started/introduction.html#what-is-a-task-queue

    Task queues are used as a mechanism to distribute work across threads or machines.

    A task queue’s input is a unit of work, called a task, dedicated worker processes then constantly monitor the queue for new work to perform.

    Celery communicates via messages using a broker to mediate between clients and workers. To initiate a task a client puts a message on the queue, the broker then delivers the message to a worker.

    A Celery system can consist of multiple workers and brokers, giving way to high availability and horizontal scaling.

    Celery is written in Python, but the protocol can be implemented in any language. So far there’s RCelery for the Ruby programming language, and a PHP client, but language interoperability can also be achieved by using webhooks.

Distributed Message Passing(分散メッセージ送信)

  • メッセージ

    • 「C++というオブジェクト指向言語では「メンバ関数の呼び出し」と呼びます。しかしObjective-Cでは明確に通信(メッセージ)と言われています。」
  • 分散