สวัสดี! บทความนี้นำเสนอ ตัวอย่างโอเพ่นซอร์ส ที่อธิบายทีละขั้นตอนวิธีใช้ไลบรารี Django Tasks Manager ในโปรเจ็กต์ใหม่ ความมุ่งมั่น จัดทำขึ้นเพื่อเน้นแต่ละขั้นตอนของการใช้งานโดยเริ่มจากไดเร็กทอรีว่างไปจนถึงขั้นตอนสุดท้ายเมื่อโครงการจัดการงานผ่านการควบคุม UI ขอบคุณที่อ่าน!
- 👉 Django & Celery Manager — ไลบรารี่ที่ใช้
- 👉 ตัวอย่างตัวจัดการงาน — ตัวอย่างการใช้งาน
- 🚀 ฟรี สนับสนุน (เผื่อไว้)
ก่อนที่ใครก็ตามจะอ่านเนื้อหานี้ ควรรู้ว่ามีอะไรอยู่ในกล่องจะดีกว่า:
ไลบรารีที่ใช้โดยตัวอย่างขับเคลื่อนโดย Django และ Celery ซึ่งเป็นตัวจัดการคิวงานยอดนิยม และมอบวิธีง่ายๆ ในการดำเนินงานเบื้องหลังด้วยการควบคุมเต็มรูปแบบ: เริ่ม/หยุด ดูเอาต์พุต และบันทึกรันไทม์ นี่คือรายการคุณลักษณะห้องสมุดทั้งหมด:
- ✅ สร้าง/เพิกถอนงาน คื่นฉ่าย
- ✅ ดูบันทึกและเอาต์พุต
- ✅ การกำหนดค่าขั้นต่ำ
- ✅ ติดตั้งผ่าน PyPi
- ✅ มี TASKS (ให้ไว้เป็นตัวอย่างเริ่มต้น)
- ✅ งาน
users_in_db()
- แสดงรายการผู้ใช้ที่ลงทะเบียนทั้งหมด - ✅ งาน
execute_script()
- ให้ผู้ใช้รันระบบ สคริปต์
ในท้ายที่สุด UI นี้ที่เครื่องมือเปิดเผยจะคล้ายกับสิ่งนี้:
ในกรณีที่ฟังดูมีประโยชน์ ขั้นตอนการผสานรวมสำหรับโปรเจ็กต์ Django จะแสดงอยู่ด้านล่าง
สิ่งสำคัญคือการพึ่งพาบริการ Redis ที่กำหนดโดย Celery ซึ่งใช้ในการจัดการและติดตามสถานะงานแบบเรียลไทม์
👉 ขั้นตอนที่ 1 — ติดตั้ง
django-tasks-manager
ผ่าน PIP
วิธีที่แนะนำในการทำเช่นนี้คือการใช้สภาพแวดล้อมเสมือนที่แยกการติดตั้งไลบรารี
$ pip install django-tasks-manager
เมื่อการติดตั้งเสร็จสิ้น ขั้นตอนต่อไปคือการสร้างไดเร็กทอรีสองไดเร็กทอรีที่ไลบรารีใช้:
celery_logs
- ใช้เพื่อบันทึกการดำเนินการรันไทม์ของงานcelery_scripts
- ตำแหน่งที่ไลบรารีค้นหาสคริปต์ที่จะดำเนินการ
$ mkdir celery_logs
$ mkdir celery_scripts
แพ็คเกจนี้จัดส่งสคริปต์ง่ายๆ สองสามสคริปต์เพื่อเป็นข้อพิสูจน์แนวคิดพร้อมให้ดาวน์โหลดจาก พื้นที่เก็บข้อมูลสาธารณะ
👉 ขั้นตอนที่ 2 — อัปเดต
app routing
# core/urls.py
from django.urls import path, include # <-- UPDATE: Add 'include' HELPER
urlpatterns = [ ... path("", include("django_tm.urls")), # <-- New Routes
... ]
👉 ขั้นตอนที่ 3 — อัปเดตการกำหนดค่า
include the new APPS
# App Settings, truncated content
INSTALLED_APPS = [ ... 'django_tm', # Django Tasks Manager # <-- NEW 'django_celery_results', # Django Celery Results # <-- NEW ]
👉 ขั้นตอนที่ 4 — อัปเดตการกำหนดค่า
include page templates
# App Settings, truncated content
TEMPLATE_DIR_TASKS = os.path.join(BASE_DIR, "django_tm/templates") # <-- NEW
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [TEMPLATE_DIR_TASKS], # <-- NEW 'APP_DIRS': True, }, ]
👉 ขั้นตอนที่ 5 — อัปเดตการกำหนดค่า ส่วน
CELERY_
ใหม่
############################################################# # Celery configurations
# BASE_DIR points to the ROOT of the project # Note: make sure you have 'os' object imported BASE_DIR = os.path.dirname(os.path.dirname(__file__))
# Working Directories required write permission CELERY_SCRIPTS_DIR = os.path.join(BASE_DIR, "celery_scripts" ) CELERY_LOGS_DIR = os.path.join(BASE_DIR, "celery_logs" )
CELERY_BROKER_URL = os.environ.get("CELERY_BROKER", "redis://localhost:6379") CELERY_RESULT_BACKEND = os.environ.get("CELERY_BROKER", "redis://localhost:6379")
CELERY_TASK_TRACK_STARTED = True CELERY_TASK_TIME_LIMIT = 30 * 60 CELERY_CACHE_BACKEND = "django-cache" CELERY_RESULT_BACKEND = "django-db" CELERY_RESULT_EXTENDED = True CELERY_RESULT_EXPIRES = 60*60*24*30 # Results expire after 1 month CELERY_ACCEPT_CONTENT = ["json"] CELERY_TASK_SERIALIZER = 'json' CELERY_RESULT_SERIALIZER = 'json'
#############################################################
👉 ขั้นตอนที่ 6 —
Migrate the database
&start
แอป
$ python manage.py makemigrations
$ python manage.py migrate
$
$ python manage.py runserver
👉 ขั้นตอนที่ 7 — เริ่ม
Celery
manager (ใช้เทอร์มินัลอื่น)
$ celery --app=django_tm.celery.app worker --loglevel=info
ขณะนี้ผู้ใช้ขั้นสูงสามารถเชื่อมต่อกับ UI และจัดการงานด้วยสายตาได้ตามที่อยู่นี้: http://127.0.0.1:8000/tasks
ขอบคุณที่อ่าน! หากต้องการแหล่งข้อมูลเพิ่มเติม โปรดเข้าไปที่:
- 👉 ฟรี สนับสนุน ทางอีเมลและ Discord
- 👉 ตัวเริ่มต้นฟรี เพิ่มเติมที่สร้างขึ้นในเทคโนโลยีที่แตกต่างกัน
🚀 โปรโมชั่น
ในกรณีที่คุณเป็นนักพัฒนารุ่นเยาว์หรือรู้จัก PROMO Bundle นี้สร้างขึ้นและ ลดราคา 85% โดย Creative-Tim อาจมีประโยชน์ แพ็คเกจนี้ประกอบด้วยคอลเลกชั่นระดับพรีเมียมที่แข็งแกร่ง (ชุดอุปกรณ์ และ แดชบอร์ด) ที่สามารถใช้สร้างพอร์ตโฟลิโอและเว็บแอปที่สะดุดตาได้ในเวลาอันรวดเร็ว
👉 Junior PROMO Bundle — ชุดพรีเมี่ยม24 ชุดและไฟล์นักออกแบบ