SSD ADVAN X HIKSEMI G3000 M.2 NVMe 256GBSolid State Drive (SSD) adalah perangkat penyimpanan data yang menggunakan teknologi IC (integrated Circuit) sehingga lebih cepat, memiliki kinerja tinggi, dan mengkonsumsi daya lebih rendah. SSD semakin populer dan banyak digunakan dalam berbagai perangkat termasuk laptop, PC, server, dan lainnya. 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: