Apabila saderi bekerjasama dengan rabbitmq untuk melaksanakan tugas tak segerak, didapati bilangan mesej dalam rabbitmq sentiasa meningkat, tetapi mesej ini sebenarnya telah diproses oleh tugas tersebut.
Melihat bahagian belakang yang disertakan dengan rabbimtq, kami mendapati bahawa dalam mesej Baris Gilir, bilangan sedia dan jumlah telah mencecah lebih daripada 5,000, dan nilai tidak diakui ialah 0. Walau bagaimanapun, apabila benar-benar berfungsi, nilai yang tidak diketahui akan berubah, tetapi ia akhirnya akan menjadi 0. Tiada apa-apa yang istimewa tentang konfigurasi saderi Ia hanya menetapkan kandungan berikut
CELERY_IMPORTS = ('testtasks',)
BROKER_URL = '. amqp://guest:guest@localhost:5672//'
CELERY_RESULT_BACKEND = 'amqp://'
Adakah ada yang salah dengan konfigurasi saderi di sebelah saya.
Ia telah diselesaikan Cuma tingkatkan rabbitmq kepada versi 3.3 atau ke atas.
Saya menggunakan rabbitmq versi 3.1 sebelum ini, dan kemudian saderi ialah versi 3.1
Cara sebenar untuk menyelesaikan masalah adalah dengan menambahkan atribut ignore_result=True pada tugasan, seperti berikut
@app.task(ignore_result=True)