เชื่อม Celery เข้ากับโรงงานแอป
กำหนดค่าตัวรับส่งงานและแอป Celery
เชื่อม Celery เข้ากับโรงงานแอป เป็นบทเรียน Flask Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Flask Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Flask Academy มีบทเรียนทั้งหมด 4 บทเรียน
บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ
Three Pieces to Wire
To run Celery you need three things: the broker URL, a result backend, and a Celery app object your tasks belong to.
Pick a Broker
Redis is the easiest broker to start with. You point Celery at it with a URL so it knows where to push and pull jobs.
broker_url = "redis://localhost:6379/0"Add a Result Backend
If you want to read task results later, set a result backend. Redis works fine for both broker and backend in development.
result_backend = "redis://localhost:6379/1"The Celery App Object
Celery centers on one Celery() instance. Tasks are registered on it, and workers load it to know what to run.
from celery import Celery
celery = Celery(__name__)Why the Factory Matters
In the app factory pattern, config is loaded inside create_app. Celery should pull its broker URL from that same config, not hardcode it.
Read Config from Flask
Store CELERY settings in your Flask config so dev, test, and prod can differ. Then build Celery from app.config inside the factory.
app.config["CELERY_BROKER_URL"] = "redis://localhost:6379/0"A make_celery Helper
A common pattern is a make_celery(app) function that reads app.config and returns a configured Celery instance.
def make_celery(app):
c = Celery(app.import_name)
c.conf.update(app.config)
return cTasks Need App Context
Tasks often touch the database or current_app, which need an app context. Without it, those calls fail when the worker runs.
Subclass the Task Base
The classic fix wraps each task so it pushes an app context before running. That way tasks can use Flask extensions safely.
Two Processes, One Config
The web process and the worker are separate, but both build Celery from the same config so they agree on the broker and backend.
Start a Worker
You run workers from the command line, pointing at your Celery instance. Then they listen for jobs on the broker.
celery -A app.celery worker --loglevel=infoQuick Check
Tasks frequently use the database.
Recap
Set a broker and backend, build a Celery from app.config inside create_app, and push an app context so tasks can use Flask. ✅
คำถามที่พบบ่อย
บทเรียน “เชื่อม Celery เข้ากับโรงงานแอป” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “เชื่อม Celery เข้ากับโรงงานแอป” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Flask Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Flask Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “เชื่อม Celery เข้ากับโรงงานแอป”
กำหนดค่าตัวรับส่งงานและแอป Celery คุณปฏิบัติ Flask Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Flask Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Flask Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “เชื่อม Celery เข้ากับโรงงานแอป” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Flask Academy นี้ได้ไหม
ได้ บทเรียน Flask Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เหตุใดจึงควรย้ายงานออกจากคำขอ
- เชื่อม Celery เข้ากับโรงงานแอป
- กำหนดและเรียกใช้งาน
- ติดตามผลลัพธ์และจัดการความล้มเหลว