Seledri 4.x dimulai (dengan perbaikan # 4078) tetapi semua tugas macet
Gunakan tutorial Langkah Pertama (http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html)
seledri -Pekerja tugas --loglevel = info
add.delay (2,2)
Tugas dijalankan dan hasil 4 dihasilkan
Seledri pecah.
"C: \ Program Files \ Python36 \ Scripts \ celery.exe" -A perse.celery pekerja -l info
-------------- seledri @ PETRUS v4.0.2 (panggilan laten)
--- * * * - Windows-10-10.0.14393-SP0 2017-06-08 15:31:22
-------------- [antrian]
.> tukar seledri = seledri (langsung) kunci = seledri
[tugas]
. perse.tasks.celery_add
[08-06-2017 15: 31: 22,685: INFO / MainProcess] Terhubung ke amqp: // guest : *@127.0.0.1: 5672 //[08-06-2017 15: 31: 22,703: INFO / MainProcess] mingle: mencari tetangga[08-06-2017 15: 31: 23,202: INFO / SpawnPoolWorker-5] proses turunan 5124 memanggil self.run ()[08-06-2017 15: 31: 23,207: INFO / SpawnPoolWorker-4] proses turunan 10848 memanggil self.run ()[08-06-2017 15: 31: 23,208: INFO / SpawnPoolWorker-10] proses turunan 5296 memanggil self.run ()[08-06-2017 15: 31: 23,214: INFO / SpawnPoolWorker-1] proses turunan 5752 memanggil self.run ()[08-06-2017 15: 31: 23,218: INFO / SpawnPoolWorker-3] proses turunan 11868 memanggil self.run ()[08-06-2017 15: 31: 23,226: INFO / SpawnPoolWorker-11] proses turunan 9544 memanggil self.run ()[08-06-2017 15: 31: 23,227: INFO / SpawnPoolWorker-6] proses turunan 16332 memanggil self.run ()[08-06-2017 15: 31: 23,229: INFO / SpawnPoolWorker-8] proses turunan 3384 memanggil self.run ()[08-06-2017 15: 31: 23,234: INFO / SpawnPoolWorker-12] proses turunan 8020 memanggil self.run ()[08-06-2017 15: 31: 23,241: INFO / SpawnPoolWorker-9] proses turunan 15612 memanggil self.run ()[08-06-2017 15: 31: 23,243: INFO / SpawnPoolWorker-7] proses turunan 9896 memanggil self.run ()[08-06-2017 15: 31: 23,245: INFO / SpawnPoolWorker-2] proses anak 260 memanggil self.run ()[08-06-2017 15: 31: 23,730: INFO / MainProcess] mingle: all alone[08-06-2017 15: 31: 23,747: INFO / MainProcess] seledri @ PETRUS ready.[08-06-2017 15: 31: 49,412: INFO / MainProcess] Menerima tugas: perse.tasks.celery_add [524d788e-e024-493d-9ed9-4b009315fea3][08-06-2017 15: 31: 49,416: ERROR / MainProcess] Penangan tugas memunculkan kesalahan: ValueError ('tidak cukup nilai untuk dibongkar (diharapkan 3, mendapat 0)',)Traceback (panggilan terakhir terakhir):File "c: \ program files \ python36 \ lib \ site-packages \ billiard \ pool.py", baris 359, di workloophasil = (Benar, prepared_result (menyenangkan ( args, ** kwargs)))
File "c: \ program files \ python36 \ lib \ site-packages \ celery \ app \ trace.py", baris 518, di _fast_trace_task
tugas, terima, nama host = _loc
ValueError: nilai tidak cukup untuk dibongkar (diharapkan 3, didapat 0)
Lihat permintaan tarik # 4078
FWIW Saya bekerja di sekitar ini dengan menggunakan implementasi eventlet pool (opsi baris perintah "-P eventlet").
Solusi @drewdogg harus disebutkan dalam tutorial.
Saya harus mengkonfirmasi: Bug ini muncul di
Celery 4.1.0
Windows 10 Enterprise 64 bit
saat menjalankan perintah celery -A <mymodule> worker -l info
dan solusi berikut berfungsi:
pip install eventlet
celery -A <mymodule> worker -l info -P eventlet
itu cukup untuk mendefinisikan variabel lingkungan FORKED_BY_MULTIPROCESSING = 1 untuk instance pekerja.
@auvipy Bekerja untuk saya, terima kasih.
@auvipy itu benar-benar menyelesaikan masalah :) 👍
Menambahkan:
impor os
os.environ.setdefault ('FORKED_BY_MULTIPROCESSING', '1')
sebelum menentukan contoh Celery adalah enougth
mungkin ini harus disebutkan di dokumen? @wonderfulcess care untuk mengirim permintaan tarik?
@jamur_kejang
Terima kasih banyak
@auvipy itu benar-benar menyelesaikan masalah
Menambahkan:
impor os
os.environ.setdefault ('FORKED_BY_MULTIPROCESSING', '1')
sebelum menentukan contoh Celery adalah enougth
Terima kasih itu berhasil!
@auvipy jika ini hanya satu baris kode untuk diperbaiki, lalu mengapa tidak memperbaikinya di dalam seledri, daripada menggunakan dokumen untuk merekomendasikan pengguna menerapkan solusi? Mengapa bug yang sepenuhnya merusak platform dengan perbaikan sederhana seperti itu masih menjadi masalah setelah hampir 2 tahun?
Dimana mau taruh seledri ini? Saya yakin ini cocok untuk instruksi khusus windows. jika Anda ingin memperbaikinya di level kode, datanglah dengan PR yang sesuai.
@auvipy itu benar-benar menyelesaikan masalah :) 👍
Menambahkan:
impor os
os.environ.setdefault ('FORKED_BY_MULTIPROCESSING', '1')
sebelum menentukan contoh Celery adalah enougth
Anda luar biasa, terima kasih banyak!
@auvipy Saya telah mencari jawaban untuk masalah ini, saya telah menghabiskan banyak waktu untuk mencoba memperbaikinya, terima kasih banyak
Komentar yang paling membantu
Saya harus mengkonfirmasi: Bug ini muncul di
saat menjalankan perintah
celery -A <mymodule> worker -l info
dan solusi berikut berfungsi: