Resque vs Sidekiq? [ปิด]


127

ฉันกำลังใช้Resqueสำหรับกระบวนการเบื้องหลังของฉัน แต่เมื่อไม่นานมานี้ฉันได้ยินเรื่องตลกsidekiqมากมายเกี่ยวกับ ใครสามารถเปรียบเทียบ / แยกความแตกต่าง?

โดยเฉพาะอย่างยิ่งฉันต้องการทราบว่ามีวิธีตรวจสอบโดยทางโปรแกรมหรือไม่ว่างานจะเสร็จสมบูรณ์ใน sidekiq


71
ฉันรู้สึกกระวนกระวายใจที่เห็นว่าคำถามนี้ยังไม่ถูกปิดว่า "ไม่เหมาะสมสำหรับ SO"
Dogweather

51
เราจะหยุดปิดคำถามดีๆทั้งหมดได้หรือไม่ ฉันรู้ว่ามันค่อนข้างกว้างมันค่อนข้างสำคัญและน่าสนใจทีเดียว
superluminary

19
วันหนึ่งพวกเขาจะคิดค้นไซต์ที่โปรแกรมเมอร์สามารถถามคำถามและไซต์นั้นจะอนุญาตให้มีการตอบสนองแบบอัตนัย คำถามที่สามารถเพิกเฉยได้หรือแม้กระทั่งการโหวตตามความเกี่ยวข้อง
baash05

4
@ baash05 และจะเรียกว่า Quora!
nakhli

6
จะเรียกว่า Yahoo Answers และคุณภาพจะลดลงอย่างรวดเร็ว
ปิดฉาก

คำตอบ:


130

Resque:

ข้อดี:

จุดด้อย

  • รันกระบวนการต่อผู้ปฏิบัติงาน (ใช้หน่วยความจำมากขึ้น);
  • ไม่ลองงานอีกครั้ง (นอกกรอบอยู่ดี)

Sidekiq:

ข้อดี

  • รันเธรดต่อผู้ปฏิบัติงาน (ใช้หน่วยความจำน้อยกว่ามาก);
  • ส้อมน้อยลง (ทำงานได้เร็วขึ้น);
  • ตัวเลือกเพิ่มเติมนอกกรอบ

จุดด้อย

  • [ใหญ่]ต้องด้ายความปลอดภัยของรหัสของคุณและการอ้างอิงทั้งหมด หากคุณรันรหัสเธรดที่ไม่ปลอดภัยกับเธรดคุณกำลังขอปัญหา
  • ทำงานกับทับทิมบางชนิดได้ดีกว่าทับทิมอื่น ๆ (แนะนำให้ใช้ jruby ประสิทธิภาพของ MRI จะลดลงเนื่องจาก GVL (global VM lock))

19
คุณจะรู้ได้อย่างไรว่าคุณกำลังเรียกใช้ "รหัสเธรดที่ไม่ปลอดภัย"
Dogweather

4
ตัวอย่างเช่นถ้าคุณเก็บของรัฐในตัวแปรทั่วโลกแล้วคุณกำลังมีปัญหา :) สำหรับอัญมณีนี่คือบางส่วนในวิกิพีเดีย
Sergio Tulentsev

25
@mrbrdo คุณไม่สามารถผิดได้มากกว่านี้ GVL ไม่มีส่วนเกี่ยวข้องกับความปลอดภัยของรหัสทับทิมของคุณ GVL เป็นเรื่องเกี่ยวกับความปลอดภัยของเธรดของรหัสล่ามทับทิม (รหัส MRI C)
radarek

2
ฉันต้องขัดแย้งกับ 'โปร' ใน Resque ที่ระบุว่า 'คุณสามารถใช้ทับทิมอะไรก็ได้' README for Resque ในวันนี้กล่าวว่า 'เราชอบที่จะสนับสนุน Rubies ที่ไม่ใช่ MRI แต่อาจมีข้อบกพร่อง' github.com/resque/resque/blob/master/README.md#requirements
JellicleCat

2
ฉันจะหลีกเลี่ยง Sidekiq เป็นพิเศษหากคุณวางแผนที่จะเรียกใช้ JavaScript ในงานของคุณโดยใช้ therubyracer ไม่ใช่ความผิดของ Sidekiq per se แต่การมัลติเธรดทำให้เกิดปัญหาสำหรับ therubyracer ดูgithub.com/cowboyd/therubyracer/issues/206
Jeremy Burton

10

จากคำถาม:

โดยเฉพาะอย่างยิ่งฉันต้องการทราบว่ามีวิธีการตรวจสอบโดยทางโปรแกรมหรือไม่ว่างานจะเสร็จสมบูรณ์ใน sidekiq หรือไม่

นี่เป็นวิธีแก้ปัญหาสำหรับสิ่งนั้น:

  1. Sidekiq :: อัญมณีสถานะ
  2. Batch API (Sidekiq Pro) - การใช้งาน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.