Versi: | 5.5.0rc3 (kekebalan) |
---|---|
jaringan: | https://docs.celeryq.dev/en/stable/index.html |
Unduh: | https://pypi.org/project/celery/ |
Sumber: | https://github.com/celery/celery/ |
Kata kunci: | tugas, antrian, pekerjaan, async, kelincimq, amqp, redis, python, didistribusikan, aktor |
Proyek ini bergantung pada sumbangan kemurahan hati Anda.
Jika Anda menggunakan Seledri untuk membuat produk komersial, mohon pertimbangkan untuk menjadi pendukung atau sponsor kami untuk menjamin masa depan Seledri.
Tersedia sebagai bagian dari Langganan Tidelift.
Pemelihara celery
dan ribuan paket lainnya bekerja sama dengan Tidelift untuk memberikan dukungan komersial dan pemeliharaan untuk dependensi sumber terbuka yang Anda gunakan untuk membangun aplikasi Anda. Menghemat waktu, mengurangi risiko, dan meningkatkan kesehatan kode, sekaligus membayar pengelola dependensi yang Anda gunakan. Pelajari lebih lanjut.
Dragonfly adalah pengganti Redis yang menghemat biaya dan meningkatkan kinerja. Dirancang untuk sepenuhnya memanfaatkan kekuatan perangkat keras cloud modern dan memenuhi permintaan data aplikasi modern, Dragonfly membebaskan pengembang dari batasan penyimpanan data dalam memori tradisional.
Antrian tugas digunakan sebagai mekanisme untuk mendistribusikan pekerjaan di seluruh thread atau mesin.
Masukan antrian tugas adalah unit kerja, yang disebut tugas, proses pekerja khusus, lalu terus memantau antrian untuk melakukan pekerjaan baru.
Celery berkomunikasi melalui pesan, biasanya menggunakan broker untuk menjadi perantara antara klien dan pekerja. Untuk memulai tugas, klien memasukkan pesan ke dalam antrian, broker kemudian mengirimkan pesan tersebut ke pekerja.
Sistem Celery dapat terdiri dari banyak pekerja dan broker, sehingga menghasilkan ketersediaan tinggi dan penskalaan horizontal.
Seledri ditulis dengan Python, tetapi protokolnya dapat diimplementasikan dalam bahasa apa pun. Selain Python, ada node-celery untuk Node.js, klien PHP, gocelery, gopher-celery untuk Go, dan rustic-celery untuk Rust.
Interoperabilitas bahasa juga dapat dicapai dengan menggunakan webhook sedemikian rupa sehingga klien memasukkan URL ke dalam antrean untuk diminta oleh pekerja.
Seledri versi 5.5.x berjalan pada:
Ini adalah versi seledri yang mendukung Python 3.8 atau lebih baru.
Jika Anda menjalankan Python versi lama, Anda harus menjalankan Celery versi lama:
Celery adalah proyek dengan pendanaan minimal, jadi kami tidak mendukung Microsoft Windows tetapi seharusnya bisa berfungsi. Tolong jangan buka masalah apa pun yang terkait dengan platform itu.
Seledri biasanya digunakan bersama perantara pesan untuk mengirim dan menerima pesan. Transportasi RabbitMQ dan Redis memiliki fitur yang lengkap, tetapi ada juga dukungan eksperimental untuk berbagai solusi lain, termasuk menggunakan SQLite untuk pengembangan lokal.
Seledri dapat berjalan di satu mesin, di beberapa mesin, atau bahkan di seluruh pusat data.
Jika ini adalah pertama kalinya Anda mencoba menggunakan Celery, atau Anda baru menggunakan Celery v5.5.x yang berasal dari versi sebelumnya, maka Anda harus membaca tutorial memulai kami:
Langkah pertama dengan Seledri
Tutorial mengajarkan Anda hal-hal minimum yang diperlukan untuk memulai dengan Seledri.
Langkah selanjutnya
Ikhtisar lebih lengkap, menampilkan lebih banyak fitur.
Anda juga dapat memulai Celery dengan menggunakan transportasi broker yang dihosting CloudAMQP. Penyedia hosting terbesar RabbitMQ bangga menjadi sponsor Celery.
Sederhana
Seledri mudah digunakan dan dirawat, serta tidak memerlukan file konfigurasi .
Ia memiliki komunitas yang aktif dan ramah yang dapat Anda ajak bicara untuk mendapatkan dukungan, seperti di milis kami, atau saluran IRC.
Inilah salah satu aplikasi paling sederhana yang dapat Anda buat:
from celery import Celery app = Celery ( 'hello' , broker = 'amqp://guest@localhost//' ) @ app . task def hello (): return 'hello world'
Sangat Tersedia
Pekerja dan klien akan secara otomatis mencoba kembali jika terjadi kehilangan atau kegagalan koneksi, dan beberapa broker mendukung HA melalui replikasi Primer/Utama atau Primer/Replika .
Cepat
Satu proses Celery dapat memproses jutaan tugas dalam satu menit, dengan latensi bolak-balik sub-milidetik (menggunakan RabbitMQ, py-librabbitmq, dan pengaturan yang dioptimalkan).
Fleksibel
Hampir setiap bagian dari Celery dapat diperluas atau digunakan sendiri, implementasi kumpulan khusus, serializer, skema kompresi, logging, penjadwal, konsumen, produsen, transportasi broker, dan banyak lagi.
Transportasi Pesan
- RabbitMQ, Redis, Amazon SQS, Google Pub/Sub
Konkurensi
- Prefork, Eventlet, gevent, ulir tunggal (
solo
)Penyimpanan Hasil
- AMQP, Redis
- memcache
- SQLAlkimia, Django ORM
- Apache Cassandra, IronCache, Elasticsearch
- Penyimpanan Google Cloud
Serialisasi
- acar , json , yaml , msgpack .
- zlib , kompresi bzip2 .
- Penandatanganan pesan kriptografi.
Seledri mudah diintegrasikan dengan kerangka web, beberapa di antaranya bahkan memiliki paket integrasi:
Django tidak diperlukan Piramida piramida_seledri Tiang tiang seledri Labu tidak diperlukan web2py web2py-seledri Angin topan seledri tornado API Cepat tidak diperlukan
Paket integrasi tidak sepenuhnya diperlukan, tetapi dapat membuat pengembangan lebih mudah, dan terkadang menambahkan kaitan penting seperti menutup koneksi database di fork
.
Dokumentasi terbaru dihosting di Read The Docs, berisi panduan pengguna, tutorial, dan referensi API.
Anda dapat menginstal Seledri melalui Indeks Paket Python (PyPI) atau dari sumber.
Untuk menginstal menggunakan pip
:
$ pip install -U Seledri
Celery juga mendefinisikan sekelompok bundel yang dapat digunakan untuk menginstal Celery dan dependensi untuk fitur tertentu.
Anda dapat menentukannya dalam kebutuhan Anda atau pada baris perintah pip
dengan menggunakan tanda kurung. Beberapa bundel dapat ditentukan dengan memisahkannya dengan koma.
$ pip install "seledri[redis]" $ pip install "seledri[redis,auth,msgpack]"
Paket berikut tersedia:
celery[auth] : | untuk menggunakan serializer keamanan auth . |
---|---|
celery[msgpack] : | untuk menggunakan serializer msgpack. |
celery[yaml] : | untuk menggunakan serializer yaml. |
celery[eventlet] : | untuk menggunakan kumpulan eventlet . |
---|---|
celery[gevent] : | untuk menggunakan kumpulan gevent . |
celery[amqp] : | untuk menggunakan perpustakaan python amqp RabbitMQ. |
---|---|
celery[redis] : | untuk menggunakan Redis sebagai transportasi pesan atau sebagai backend. |
celery[sqs] : | untuk menggunakan Amazon SQS sebagai transportasi pesan. |
celery[tblib ]: | untuk menggunakan fitur |
celery[memcache] : | untuk menggunakan Memcached sebagai hasil backend (menggunakan |
celery[pymemcache] : | untuk menggunakan Memcached sebagai hasil backend (implementasi Python murni). |
celery[cassandra] : | untuk menggunakan Apache Cassandra/Astra DB sebagai backend hasil dengan driver DataStax. |
celery[azureblockblob] : | untuk menggunakan Azure Storage sebagai backend hasil (menggunakan |
celery[s3] : | untuk menggunakan S3 Storage sebagai hasil backend. |
celery[gcs] : | untuk menggunakan Google Cloud Storage sebagai backend hasil. |
celery[couchbase] : | untuk menggunakan Couchbase sebagai backend hasil. |
celery[arangodb] : | untuk menggunakan ArangoDB sebagai hasil backend. |
celery[elasticsearch] : | untuk menggunakan Elasticsearch sebagai hasil backend. |
celery[riak] : | untuk menggunakan Riak sebagai hasil backend. |
celery[cosmosdbsql] : | untuk menggunakan Azure Cosmos DB sebagai backend hasil (menggunakan |
celery[zookeeper] : | untuk menggunakan Zookeeper sebagai transportasi pesan. |
celery[sqlalchemy] : | untuk menggunakan SQLAlchemy sebagai hasil backend ( didukung ). |
celery[pyro] : | untuk menggunakan transportasi pesan Pyro4 ( eksperimen ). |
celery[slmq] : | untuk menggunakan transportasi Antrean Pesan SoftLayer ( eksperimental ). |
celery[consul] : | untuk menggunakan penyimpanan Kunci/Nilai Consul.io sebagai transportasi pesan atau backend hasil ( eksperimental ). |
celery[django] : | menentukan versi serendah mungkin untuk dukungan Django. Anda mungkin sebaiknya tidak menggunakan ini dalam kebutuhan Anda, ini di sini untuk tujuan informasi saja. |
celery[gcpubsub] : | untuk menggunakan Google Pub/Sub sebagai transportasi pesan. |
Unduh Seledri versi terbaru dari PyPI:
https://pypi.org/project/celery/
Anda dapat menginstalnya dengan melakukan hal berikut:
$ tar xvfz seledri-0.0.0.tar.gz $ cd seledri-0.0.0 $ python setup.py membangun # python setup.py instal
Perintah terakhir harus dijalankan sebagai pengguna yang memiliki hak istimewa jika saat ini Anda tidak menggunakan virtualenv.
Versi pengembangan Seledri juga memerlukan versi pengembangan kombu
, amqp
, billiard
, dan vine
.
Anda dapat menginstal snapshot terbaru menggunakan perintah pip berikut:
$ pip instal https://github.com/celery/celery/zipball/main#egg=celery $ pip instal https://github.com/celery/billiard/zipball/main#egg=billiard $ pip instal https://github.com/celery/py-amqp/zipball/main#egg=amqp $ pip instal https://github.com/celery/kombu/zipball/main#egg=kombu $ pip instal https://github.com/celery/vine/zipball/main#egg=vine
Silakan lihat bagian Berkontribusi.
Untuk diskusi tentang penggunaan, pengembangan, dan masa depan Seledri, silakan bergabung dengan milis pengguna seledri.
Ayo ngobrol dengan kami di IRC. Saluran #celery terletak di jaringan Libera Chat.
Jika Anda memiliki saran, laporan bug, atau gangguan, silakan laporkan ke pelacak masalah kami di https://github.com/celery/celery/issues/
https://github.com/celery/celery/wiki
Proyek ini ada berkat semua orang yang berkontribusi. Pengembangan seledri terjadi di GitHub: https://github.com/celery/celery
Anda sangat dianjurkan untuk berpartisipasi dalam pengembangan seledri. Jika Anda tidak menyukai GitHub (karena alasan tertentu), Anda dapat mengirimkan patch reguler.
Pastikan juga membaca bagian Berkontribusi pada Seledri di dokumentasi.
Terima kasih kepada semua pendukung kami! [Menjadi pendukung]
Dukung proyek ini dengan menjadi sponsor. Logo Anda akan muncul di sini dengan tautan ke situs web Anda. [Menjadi sponsor]
Perangkat lunak ini dilisensikan di bawah Lisensi BSD Baru. Lihat file LICENSE
di direktori distribusi teratas untuk teks lisensi lengkap.