Rumah >pangkalan data >Redis >Cara menggunakan Redis dan Python untuk membangunkan fungsi baris gilir tugas yang diedarkan

Cara menggunakan Redis dan Python untuk membangunkan fungsi baris gilir tugas yang diedarkan

PHPz
PHPzasal
2023-09-20 16:46:451442semak imbas

Cara menggunakan Redis dan Python untuk membangunkan fungsi baris gilir tugas yang diedarkan

Cara menggunakan Redis dan Python untuk membangunkan fungsi baris gilir tugas teragih

Pengenalan:
Dengan pembangunan aplikasi Internet, permintaan untuk keupayaan pemprosesan masa nyata dan serentak semakin tinggi, dan baris gilir tugasan yang diedarkan telah menjadi penyelesaian kepada alat penting pemprosesan tugas serentak. Artikel ini akan memperkenalkan secara terperinci cara menggunakan Redis dan Python untuk membangunkan fungsi baris gilir tugas yang diedarkan, dan menyediakan contoh kod khusus.

1. Gambaran keseluruhan

Baris gilir tugasan yang diedarkan digunakan untuk mengendalikan sejumlah besar tugasan serentak, mengagihkan tugas kepada berbilang nod pekerja untuk diproses dan memastikan keteraturan dan kebolehskalaan tugas. Redis ialah pangkalan data nilai kunci berprestasi tinggi yang menyediakan struktur data yang kaya dan arahan operasi dan sesuai untuk melaksanakan baris gilir tugas yang diedarkan.

2. Persediaan

  1. Pasang Redis
    Mula-mula anda perlu memasang Redis Anda boleh memuat turun pakej pemasangan yang sepadan dari tapak web rasmi Redis (https://redis.io/download) dan memasangnya mengikut dokumentasi rasmi.
  2. Pasang perpustakaan Python
    Gunakan pip untuk memasang perpustakaan redis dan rq:

    pip install redis
    pip install rq

3 Laksanakan baris gilir tugas teragih

Berikut ialah contoh mudah yang menunjukkan cara menggunakan Redis dan Python untuk membangunkan tugasan teragih.

  1. Buat tugasan

Pertama, kami mentakrifkan fungsi tugasan mudah untuk mengira jumlah dua nombor.

def add(x, y):
    return x + y
  1. Buat baris gilir tugas

Tulis program pengeluar untuk membuat tugasan dan menambah tugasan pada baris gilir Redis.

from rq import Queue
from redis import Redis

# 连接Redis
redis_conn = Redis()

# 创建任务队列
queue = Queue(connection=redis_conn)
  1. Tambah tugas pada baris gilir
# 添加任务到队列中
job = queue.enqueue(add, 2, 3)
  1. Proses tugas

Tulis program pengguna untuk memproses tugas dalam baris gilir tugas.

from rq import Worker

# 创建工作节点
worker = Worker([queue], connection=redis_conn)

# 启动工作节点
worker.work()
  1. Melaksanakan program pengeluar dan pengguna secara berasingan

Untuk melaksanakan baris gilir tugas yang diedarkan, kami perlu melaksanakan program pengeluar dan pengguna dalam proses yang berbeza.

Jalankan program pengguna dalam satu terminal:

$ rq worker

Jalankan program pengeluar di terminal lain:

from rq import Queue
from redis import Redis

redis_conn = Redis()
queue = Queue(connection=redis_conn)

job = queue.enqueue(add, 2, 3)

Baris gilir tugas yang diedarkan melaksanakan pengagihan dan pemprosesan tugas melalui struktur data baris gilir Redis. Program pengeluar menambah tugas pada baris gilir, manakala program pengguna mengambil tugas daripada baris gilir dan memprosesnya. Dengan memulakan berbilang program pengguna, kami boleh melaksanakan berbilang nod pekerja untuk memproses tugas secara selari dan meningkatkan keupayaan serentak pemprosesan tugas.

Kesimpulan:
Artikel ini memperkenalkan cara menggunakan Redis dan Python untuk membangunkan fungsi baris gilir tugas yang diedarkan. Dengan melaksanakan contoh baris gilir tugas yang mudah, kami menunjukkan keseluruhan proses penciptaan, penambahan dan pemprosesan tugas. Saya harap artikel ini akan membantu anda memahami prinsip dan pelaksanaan baris gilir tugas yang diedarkan, dan boleh digunakan untuk projek sebenar.

Atas ialah kandungan terperinci Cara menggunakan Redis dan Python untuk membangunkan fungsi baris gilir tugas yang diedarkan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn