یہ صفحہ بتائے گا کہ آپ کی ضروریات کو پورا کرنے کے لئے asynq
کے ساتھ بیک گراونڈ پروسیسنگ کی پراپرٹی کو کنفیگر کرنا کیسے ہے۔
وزن دار پرائیورٹی
پہلے سے طے کردہ طور پر، سرور
تمام کام کرنے والے تمام تسکس کے لئے "default" نام کی قیو بنائے گا۔
اگر آپ ہر تسک کو پرائیورٹی دینا چاہتے ہیں تو آپ مختلف پرائیورٹی لیولز کے ہر تسک کے لئے مختلف قیوز بنا سکتے ہیں۔
مثال:
srv := asynq.NewServer(redis, asynq.Config{
Concurrency: 10,
Queues: map[string]int{
"critical": 6,
"default": 3,
"low": 1,
},
})
یہ تین قیوز کے ساتھ بیک گراونڈ
کا ایک مثال ہے: critical، default، اور low۔ قیو کے ناموں کے ساتھ منسلک نمبرز قیو کی پرائیورٹی لیول کو ظاہر کرتے ہیں۔
اوپر دی گئی تشکیل کے مطابق:
- critical قیو میں تسکس کو 60٪ وقت کے لئے پروسیس کیا جائے گا
- default قیو میں تسکس کو 30٪ وقت کے لئے پروسیس کیا جائے گا
- low قیو میں تسکس کو 10٪ وقت کے لئے پروسیس کیا جائے گا
اب جب ہمارے پاس مختلف پرائیورٹی لیولز کے ساتھ متعدد قیوز ہیں، تو ہم کس قیو کا استعمال کرنا چاہتے ہیں وہاں کوئی منصوبہ بنا سکتے ہیں جب کام کر رہے ہوتے ہیں۔
مثال:
client := asynq.NewClient(redis)
task := asynq.NewTask("send_notification", map[string]interface{}{"user_id": 42})
// "critical" قیو کا استعمال کرنے کے لئے `asynq.Queue` اختیار کا استعمال کریں۔
err := client.Enqueue(task, asynq.Queue("critical"))
// ہمسے “default” قیو میں تسکسانتقال کرنے ہوں گے۔
err = client.Enqueue(task)
asynq stats
کمانڈ کے ساتھ، ہم قیوز چیک کرسکتے ہیں۔
آپ مخرج کی "QUEUES" سیکشن میں ہر قیو کی تسکسانتقال کی تعداد دیکھ سکتے ہیں۔
سخت پرائیورٹی
اگر آپ مختلف قیوز بنانا چاہتے ہیں اور ایک قیو کے تمام تسکس بلند تر پرائیورٹی کے ساتھ پروسیس کئے جائیں تو، آپ StrictPriority
اختیار کا استعمال کرسکتے ہیں۔
مثال:
srv := asynq.NewServer(redis, asynq.Config{
Concurrency: 10,
Queues: map[string]int{
"critical": 3,
"default": 2,
"low": 1,
},
StrictPriority: true, // سخت موڈ!
})
یہ تین قیوز کے ساتھ اور کندر پرائیورٹی کے ساتھ بیک گراونڈ
کا ایک مثال ہے: critical، default، اور low۔ سخت پرائیورٹی موڈ میں، بلند تر پرائیورٹی کی قیوز ہمیشہ سب سے پہلے پروسیس کی جائیں گی، اور نچلی پرائیورٹی کی قیوز صرف اس صورت پروسیس ہوں گی جب تمام دیگر بلند تر پرائیورٹی کی قیوز خالی ہوں۔
لہذا، اس مثال میں critical قیو کے تسکس ہمیشہ سب سے پہلے پروسیس ہوں گے۔ اگر critical قیو خالی ہوتی ہے، تو default قیو پروسیس ہوگی۔ اگر critical اور default دونوں قیوز خالی ہوتی ہیں تو low قیو پروسیس ہوگی۔