เวอร์ชัน: | 5.5.0rc3 (ภูมิคุ้มกัน) |
---|---|
เว็บ: | https://docs.celeryq.dev/en/stable/index.html |
ดาวน์โหลด: | https://pypi.org/project/celery/ |
แหล่งที่มา: | https://github.com/celery/celery/ |
คำสำคัญ: | งาน, คิว, งาน, async, rabbitmq, amqp, redis, python, แจกจ่าย, นักแสดง |
โครงการนี้อาศัยการบริจาคของคุณ
หากคุณใช้ Celery เพื่อสร้างผลิตภัณฑ์เชิงพาณิชย์ โปรดพิจารณาเป็นผู้สนับสนุนหรือผู้สนับสนุนของเราเพื่อให้แน่ใจว่าอนาคตของ Celery
มีให้เป็นส่วนหนึ่งของการสมัครสมาชิก Tidelift
ผู้ดูแลคื่น celery
และแพ็คเกจอื่น ๆ นับพันกำลังทำงานร่วมกับ Tidelift เพื่อให้การสนับสนุนเชิงพาณิชย์และการบำรุงรักษาสำหรับการพึ่งพาโอเพ่นซอร์สที่คุณใช้ในการสร้างแอปพลิเคชันของคุณ ประหยัดเวลา ลดความเสี่ยง และปรับปรุงประสิทธิภาพของโค้ด ในขณะเดียวกันก็จ่ายค่าตอบแทนให้กับผู้ดูแลตามที่คุณใช้ เรียนรู้เพิ่มเติม
Dragonfly เป็นการแทนที่ Redis แบบดรอปอินซึ่งช่วยลดต้นทุนและเพิ่มประสิทธิภาพ ออกแบบมาเพื่อใช้ประโยชน์จากพลังของฮาร์ดแวร์คลาวด์สมัยใหม่อย่างเต็มที่ และตอบสนองความต้องการข้อมูลของแอปพลิเคชันสมัยใหม่ Dragonfly ช่วยให้นักพัฒนาเป็นอิสระจากข้อจำกัดของการจัดเก็บข้อมูลในหน่วยความจำแบบเดิม
คิวงานถูกใช้เป็นกลไกในการกระจายงานข้ามเธรดหรือเครื่อง
อินพุตของคิวงานคือหน่วยของงานที่เรียกว่างาน ซึ่งเป็นกระบวนการของผู้ปฏิบัติงานโดยเฉพาะ จากนั้นจะตรวจสอบคิวอย่างต่อเนื่องเพื่อให้งานใหม่ดำเนินการ
คื่นฉ่ายสื่อสารผ่านข้อความ โดยปกติจะใช้นายหน้าเพื่อเป็นสื่อกลางระหว่างลูกค้าและพนักงาน ในการเริ่มต้นงานที่ลูกค้าใส่ข้อความในคิว นายหน้าจะส่งข้อความไปยังพนักงาน
ระบบ Celery อาจประกอบด้วยผู้ปฏิบัติงานและนายหน้าหลายคน ทำให้เกิดความพร้อมใช้งานสูงและปรับขนาดแนวนอนได้
คื่นฉ่ายเขียนด้วยภาษา Python แต่โปรโตคอลสามารถใช้งานได้ในทุกภาษา นอกจาก Python แล้ว ยังมี node-celery สำหรับ Node.js, ไคลเอนต์ PHP, gocelery, gopher-celery สำหรับ Go และrusty-celery สำหรับ Rust
ความสามารถในการทำงานร่วมกันของภาษาสามารถทำได้โดยใช้ webhooks ในลักษณะที่ไคลเอนต์จัดคิว URL ที่ผู้ปฏิบัติงานร้องขอ
Celery เวอร์ชัน 5.5.x ทำงานบน:
นี่คือเวอร์ชันของคื่นฉ่ายที่จะรองรับ Python 3.8 หรือใหม่กว่า
หากคุณใช้ Python เวอร์ชันเก่า คุณจะต้องใช้ Celery เวอร์ชันเก่า:
Celery เป็นโครงการที่มีเงินทุนเพียงเล็กน้อย ดังนั้นเราจึงไม่รองรับ Microsoft Windows แต่ควรจะใช้งานได้ กรุณาอย่าเปิดประเด็นใดๆ ที่เกี่ยวข้องกับแพลตฟอร์มนั้น
โดยทั่วไป คื่นฉ่าย จะใช้ร่วมกับนายหน้าข้อความเพื่อส่งและรับข้อความ การขนส่ง RabbitMQ, Redis มีคุณสมบัติครบถ้วนแล้ว แต่ยังมีการสนับสนุนเชิงทดลองสำหรับโซลูชันอื่น ๆ มากมาย รวมถึงการใช้ SQLite เพื่อการพัฒนาในพื้นที่
Celery สามารถทำงานบนเครื่องเดียว บนหลายเครื่อง หรือแม้แต่ข้ามศูนย์ข้อมูลก็ได้
หากนี่เป็นครั้งแรกที่คุณลองใช้ Celery หรือคุณเพิ่งเริ่มใช้ Celery v5.5.x ที่มาจากเวอร์ชันก่อนหน้า คุณควรอ่านบทช่วยสอนการเริ่มต้นใช้งานของเรา:
ขั้นตอนแรกกับคื่นฉ่าย
บทช่วยสอนจะสอนคุณถึงขั้นต่ำสุดที่จำเป็นในการเริ่มต้นกับ Celery
ขั้นตอนต่อไป
ภาพรวมที่สมบูรณ์ยิ่งขึ้น แสดงคุณสมบัติเพิ่มเติม
คุณยังสามารถเริ่มต้นใช้งาน Celery ได้โดยใช้นายหน้าขนส่ง CloudAMQP ที่โฮสต์ไว้ ผู้ให้บริการโฮสติ้งที่ใหญ่ที่สุดของ RabbitMQ คือผู้สนับสนุน Celery อย่างภาคภูมิใจ
เรียบง่าย
Celery ใช้งานง่ายและบำรุงรักษา และ ไม่ต้องการไฟล์กำหนดค่า
มีชุมชนที่กระตือรือร้นและเป็นมิตรที่คุณสามารถพูดคุยเพื่อขอรับการสนับสนุนได้ เช่น รายชื่ออีเมลของเรา หรือช่องทาง IRC
นี่คือหนึ่งในแอปพลิเคชันที่ง่ายที่สุดที่คุณสามารถทำได้:
from celery import Celery app = Celery ( 'hello' , broker = 'amqp://guest@localhost//' ) @ app . task def hello (): return 'hello world'
มีจำหน่ายสูง
ผู้ปฏิบัติงานและลูกค้าจะลองอีกครั้งโดยอัตโนมัติในกรณีที่การเชื่อมต่อขาดหายหรือล้มเหลว และนายหน้าบางรายสนับสนุน HA ในรูปแบบของการจำลอง แบบหลัก/หลัก หรือ หลัก/จำลอง
เร็ว
กระบวนการ Celery เดียวสามารถประมวลผลงานได้หลายล้านงานต่อนาที โดยมีเวลาแฝงไปกลับที่ต่ำกว่ามิลลิวินาที (โดยใช้ RabbitMQ, py-librabbitmq และการตั้งค่าที่ปรับให้เหมาะสม)
ยืดหยุ่นได้
เกือบทุกส่วนของ Celery สามารถขยายหรือใช้งานได้เอง การใช้งานพูลแบบกำหนดเอง โปรแกรมซีเรียลไลเซอร์ รูปแบบการบีบอัด การบันทึก ตัวกำหนดเวลา ผู้บริโภค ผู้ผลิต การขนส่งนายหน้า และอื่นๆ อีกมากมาย
ข้อความขนส่ง
- RabbitMQ, Redis, Amazon SQS, Google Pub/Sub
เห็นพ้องต้องกัน
- พรีฟอร์ค, อีเวนท์เล็ต, เกเวนท์, เธรดเดี่ยว (
solo
)ร้านค้าผลลัพธ์
- AMQP, เรดิส
- เมคแคช
- SQLAlchemy, จังโก้ ORM
- Apache Cassandra, IronCache, Elasticsearch
- ที่เก็บข้อมูลคลาวด์ของ Google
การทำให้เป็นอนุกรม
- ดอง , json , yaml , msgpack
- zlib , การบีบอัด bzip2
- การลงนามข้อความเข้ารหัส
Celery นั้นง่ายต่อการรวมเข้ากับเฟรมเวิร์กเว็บ ซึ่งบางอันก็มีแพ็คเกจการรวมด้วย:
จังโก้ ไม่จำเป็น พีระมิด ปิรามิด_คื่นฉ่าย เสา คื่นฉ่าย-เสา กระติกน้ำ ไม่จำเป็น web2py web2py-คื่นฉ่าย ทอร์นาโด พายุทอร์นาโดคื่นฉ่าย FastAPI ไม่จำเป็น
แพ็คเกจการรวมไม่จำเป็นอย่างเคร่งครัด แต่สามารถทำให้การพัฒนาง่ายขึ้น และบางครั้งก็เพิ่ม hooks ที่สำคัญเช่นการปิดการเชื่อมต่อฐานข้อมูลที่ fork
เอกสารล่าสุดโฮสต์อยู่ที่ Read The Docs ซึ่งมีคู่มือผู้ใช้ บทช่วยสอน และการอ้างอิง API
คุณสามารถติดตั้ง Celery ผ่านทาง Python Package Index (PyPI) หรือจากแหล่งที่มา
วิธีติดตั้งโดยใช้ pip
:
$ pip ติดตั้ง -U คื่นฉ่าย
คื่นฉ่ายยังกำหนดกลุ่มของบันเดิลที่สามารถใช้เพื่อติดตั้ง Celery และการขึ้นต่อกันของคุณสมบัติที่กำหนด
คุณสามารถระบุสิ่งเหล่านี้ในความต้องการของคุณหรือในบรรทัดคำสั่ง pip
ได้โดยใช้วงเล็บเหลี่ยม สามารถระบุหลายบันเดิลได้โดยคั่นด้วยเครื่องหมายจุลภาค
$ pip ติดตั้ง "คื่นฉ่าย [redis]" $ pip ติดตั้ง "คื่นฉ่าย [redis, auth, msgpack]"
มีบันเดิลดังต่อไปนี้:
celery[auth] : | สำหรับการใช้ซีเรียลไลเซอร์ความปลอดภัยการ auth |
---|---|
celery[msgpack] : | สำหรับการใช้ msgpack serializer |
celery[yaml] : | สำหรับการใช้ซีเรียลไลเซอร์ yaml |
celery[eventlet] : | สำหรับการใช้พูล eventlet |
---|---|
celery[gevent] : | สำหรับการใช้ gevent พูล |
celery[amqp] : | สำหรับการใช้ไลบรารี RabbitMQ amqp python |
---|---|
celery[redis] : | สำหรับการใช้ Redis เป็นการส่งข้อความหรือเป็นผลแบ็กเอนด์ |
celery[sqs] : | สำหรับการใช้ Amazon SQS เป็นการส่งข้อความ |
celery[tblib ]: | สำหรับการใช้คุณสมบัติ |
celery[memcache] : | สำหรับการใช้ Memcached เป็นแบ็กเอนด์ผลลัพธ์ (โดยใช้ |
celery[pymemcache] : | สำหรับการใช้ Memcached เป็นแบ็กเอนด์ผลลัพธ์ (การใช้งาน pure-Python) |
celery[cassandra] : | สำหรับการใช้ Apache Cassandra/Astra DB เป็นผลแบ็กเอนด์พร้อมไดรเวอร์ DataStax |
celery[azureblockblob] : | สำหรับการใช้ Azure Storage เป็นแบ็กเอนด์ผลลัพธ์ (โดยใช้ |
celery[s3] : | สำหรับการใช้ S3 Storage เป็นแบ็คเอนด์ผลลัพธ์ |
celery[gcs] : | สำหรับการใช้ Google Cloud Storage เป็นแบ็กเอนด์ผลลัพธ์ |
celery[couchbase] : | สำหรับการใช้ Couchbase เป็นแบ็กเอนด์ผลลัพธ์ |
celery[arangodb] : | สำหรับการใช้ ArangoDB เป็นแบ็กเอนด์ผลลัพธ์ |
celery[elasticsearch] : | สำหรับการใช้ Elasticsearch เป็นแบ็กเอนด์ผลลัพธ์ |
celery[riak] : | สำหรับการใช้ Riak เป็นแบ็กเอนด์ผลลัพธ์ |
celery[cosmosdbsql] : | สำหรับการใช้ Azure Cosmos DB เป็นแบ็กเอนด์ผลลัพธ์ (โดยใช้ |
celery[zookeeper] : | เพื่อใช้ Zookeeper เป็นการส่งข้อความ |
celery[sqlalchemy] : | สำหรับการใช้ SQLAlchemy เป็นแบ็กเอนด์ผลลัพธ์ ( รองรับ ) |
celery[pyro] : | สำหรับการใช้การส่งข้อความ Pyro4 ( การทดลอง ) |
celery[slmq] : | สำหรับการใช้การขนส่งคิวข้อความ SoftLayer ( ทดลอง ) |
celery[consul] : | สำหรับการใช้ที่เก็บคีย์/ค่า Consul.io เป็นการส่งข้อความหรือแบ็กเอนด์ผลลัพธ์ ( การทดลอง ) |
celery[django] : | ระบุเวอร์ชันต่ำสุดที่เป็นไปได้สำหรับการรองรับ Django คุณคงไม่ควรใช้สิ่งนี้ตามความต้องการของคุณ แต่มีวัตถุประสงค์เพื่อให้ข้อมูลเท่านั้น |
celery[gcpubsub] : | เพื่อใช้ Google Pub/Sub เป็นการส่งข้อความ |
ดาวน์โหลด Celery เวอร์ชันล่าสุดจาก PyPI:
https://pypi.org/project/celery/
คุณสามารถติดตั้งได้โดยทำดังนี้:
$ tar xvfz คื่นฉ่าย-0.0.0.tar.gz $cd คื่นฉ่าย-0.0.0 $ หลาม setup.py สร้าง # python setup.py ติดตั้ง
คำสั่งสุดท้ายจะต้องดำเนินการในฐานะผู้ใช้ที่มีสิทธิ์หากคุณไม่ได้ใช้ virtualenv ในปัจจุบัน
เวอร์ชันการพัฒนา Celery ยังต้องการเวอร์ชันการพัฒนาของ kombu
, amqp
, billiard
และ vine
คุณสามารถติดตั้งสแน็ปช็อตล่าสุดของสิ่งเหล่านี้ได้โดยใช้คำสั่ง pip ต่อไปนี้:
$ pip ติดตั้ง https://github.com/celery/celery/zipball/main#egg=celery $ pip ติดตั้ง https://github.com/celery/billiard/zipball/main#egg=billiard $ pip ติดตั้ง https://github.com/celery/py-amqp/zipball/main#egg=amqp $ pip ติดตั้ง https://github.com/celery/kombu/zipball/main#egg=kombu $ pip ติดตั้ง https://github.com/celery/vine/zipball/main#egg=vine
โปรดดูส่วนการบริจาค
สำหรับการอภิปรายเกี่ยวกับการใช้งาน การพัฒนา และอนาคตของ Celery โปรดเข้าร่วมรายชื่ออีเมลของผู้ใช้ขึ้นฉ่าย
มาพูดคุยกับเราใน IRC ช่อง #celery อยู่ที่เครือข่าย Libera Chat
หากคุณมีข้อเสนอแนะ รายงานข้อผิดพลาด หรือความรำคาญ โปรดรายงานไปยังเครื่องมือติดตามปัญหาของเราที่ https://github.com/celery/celery/issues/
https://github.com/celery/celery/wiki
โครงการนี้เกิดขึ้นได้ต้องขอบคุณทุกคนที่มีส่วนร่วม การพัฒนาคื่นฉ่ายเกิดขึ้นที่ GitHub: https://github.com/celery/celery
คุณได้รับการสนับสนุนอย่างมากให้มีส่วนร่วมในการพัฒนาคื่นฉ่าย หากคุณไม่ชอบ GitHub (ด้วยเหตุผลบางประการ) คุณสามารถส่งแพตช์ปกติได้
อย่าลืมอ่านส่วนการมีส่วนร่วมกับคื่นฉ่ายในเอกสารประกอบด้วย
ขอขอบคุณผู้สนับสนุนของเราทุกคน! [มาเป็นผู้สนับสนุน]
สนับสนุนโครงการนี้ด้วยการเป็นผู้สนับสนุน โลโก้ของคุณจะแสดงที่นี่พร้อมลิงก์ไปยังเว็บไซต์ของคุณ [มาเป็นสปอนเซอร์]
ซอฟต์แวร์นี้ได้รับอนุญาตภายใต้ใบอนุญาต BSD ใหม่ ดูไฟล์ LICENSE
ในไดเร็กทอรีการแจกจ่ายระดับบนสุดสำหรับข้อความลิขสิทธิ์ฉบับเต็ม