![]() | |
Pet Kingdom 10 Ltr Pasir Kucing Ultra Odor Seal UnscentedPet Kingdom hadirkan pasir kucing ultra odor seal untuk kebutuhan kucing peliharaan Anda. Pasir kucing premium ini akan menggumpal lebih cepat dan gumpalan tidak mudah rusak, 99.6% tanpa debu, dan terdapat extra karbon dimana dapat mengikat bau sehingga cat litter box tidak cepat bau dan tahan lebih lama. Selain itu, terbuat dari material berkualitas yang aman digunakan untuk kucing Anda. Free Klik Disini ! |
Celery adalah system penggelola antrian (task-queue) yang menangani distribusi task pada workers. Celery membuat menajemen task asinkron menjadi mudah, aplikasi anda hanya perlu mendorong pesan ke broker seperti RabbitMQ.
Celery dapat digunakan dalam berbagai konfigurasi. Salah satunya yang sering digunakan adalah mengelola task asinkron yang panjang pada aplikasi web, contohnya seperti pembuatan thumbnail saat pengguna memposting gambar.
Di artikel sebelumnya kita telah membahas tentang message broker dengan RabbitMQ. sebelum mengikuti tutorial ini pastikan bahwa kamu telah bekerja di lingkungan environment, kalau belum pelajari terlebih dahulu bagaimana cara membuat virtual environment untuk project python anda ?.
from celery import Celery
import urllib.request
import os# Where the downloaded files will be stored
BASEDIR="/home/pyton_project/alfin/samplecelery"# Create the app and set the broker location (RabbitMQ)
app = Celery('downloaderApp',
backend='rpc://',
broker='pyamqp://guest@localhost//')@app.task
def download(url, filename):
"""
Download a page and save it to the BASEDIR directory
url: the url to download
filename: the filename used to save the url in BASEDIR
"""
response = urllib.request.urlopen(url)
data = response.read()
with open(BASEDIR+"/"+filename,'wb') as file:
file.write(data)
file.close()@app.task
def list():
""" Return an array of all downloaded files """
return os.listdir(BASEDIR)
Semua keajaiban terjadi di anotasi @app.task. Ini memberitahu celery bahwa fungsi ini tidak akan berjalan pada client, tetapi dikirim ke workers melalui RabbitMQ. Semua konfigurasi celery terjadi di baris berikut:
app = Celery('downloaderApp', backend='rpc://', broker='pyamqp://guest@localhost//')
from downloaderApp import download,list
r = download.delay('https://property145.com/media/documents/agent/property_10/tanah-kavling.png', 'property145.png')
r.ready()
Demo: