تسک publisher performance مموری زیادی میگیره و کند هم هست

این تسک بیشتر از 4 گیگ رم مصرف میکنه و وقتی تسک ها زیاد میشن worker lost میخوره
برای هر روز هم حدود 4 دقیقه زمان میبره تا اجرا بشه ( برای آپدیت عملکرد تمام تریدر ها )

دیزاین :
باید تسک روی ببریم به سمتی که روی تریدر ها حرکت کنه به جای اینکه روی روز ها حرکت کنه
در واقع باید برای یک تریدر یکجا دیتا ها لود بشن و تمام performance اون تریدر در تمام تاریخ ها آپدیت بشه و بعد بریم سراغ تریدر بعدی
اینجوری مصرف مموری پایین میاد و نیاز نیست حجم خیلی بزرگی از دیتا رو لود بکنیم.

اولین مشکلی که برای این دیزاین به ذهنم میرسه میشه فیلد 30d_normalized هست. اگر به برای تریدر ها به شکل جدا از هم عملکرد حساب بکنیم نمیتونیم این فیلد رو محاسبه کنیم چون به مقادیر عملکرد باقی تریدر ها وابسته هست. توی تسک قبلی ما عملکرد تریدر ها برای یک روز کامل محاسبه میشد و در اون حالت ما میتونستیم نرمالایز آن ها را هم محاسبه کنیم

ایده دیگه ای هم که مطرح شده چانک چانک کردن پابلیشر هاست که اون هم قطعا مشکل مصرف زیاد مموری رو حل میکنه ولی فکر میکنم سرعت رو پایین بیاره

من تسک رو پیاده کردم و تغییراتش رو هم دادم. تست هم گرفتم و به نظر همه چیز خوب میاد. البته یک مشکل بزرگ همچنان باقیه و اون هم کند بودن کوئری اصلی هست که روی production خیلی زمان بره و حدود 300 ثانیه طول میکشه.

روش cluster کردن رو سید پیشنهاد کرد که اون رو هم تست کردم و خیلی تفاوت زیادی دیده نشد.
در نهایت تصمیم گرفتین تیکت بزنیم و ببینیم دلیل کند بودن این کوئری چی هست

تسک اصلاح شده رو دادم بالا و داشتم تستش میکردم که به مشکل دیتابیس خوردیم و الان نمیشه تست انجام داد
باید بمونه تا این مشکل رفع بشه