سه دستور حیاتی برای افزایش عملکرد Workflowها

 انتقال بلاگ: جدیدترین نوشته هایم را از این پس در این آدرس دنبال کنید: http://www.spdor.com/blog

حتماً شما هم با مواردی مواجه شده اید که کاربران از کندی سرعت اجرای گردش کارها شکایت دارند و مشکلاتی از جمله موارد زیر را بیان می کنند:

  • بعد از اضافه کردن آیتمی به کتابخانه، شروع گردش کار مدت زمان زیادی طول می کشد.
  • ایجاد ایمیلها توسط گردش کار در برخی موارد کند است
  • پردازش وظایف گردش کار زمان زیادی طول می کشد
  • گاهی این پیغام را دریافت می کنم:“Due to heavy load, the latest workflow operation has been queued. It will attempt to resume at a later time”

اما چطور می توان این مشکلات را برطرف کرد؟

اجرای سریع گردش کار نیازمند این است:

۱- تعداد گردش کارهایی را که همزمان اجرا می شوند، مدیریت کنیم. تعداد گردش کارهایی که به صورت پیش فرض می توانند همزمان اجرا شوند ۱۵ مورد است، بنابراین زمانی که تعداد گردش کارهای همزمان به طور ناگهانی بیشتر از این مقدار شود تعدادی از کاربران با مشکل مواجه خواهند شد.

۲-تعداد Work Itemهای در انتظار پردازش توسط سرویس تایمر را مدیریت کنیم.به صورت پیش فرض ۱۰۰ وظیفه می توانند برای اجرا در صف قرار بگیرند، در صورتی که شما گردش کارهای زیادی داشته باشید که هر کدام شامل چندین وظیفه باشند،‌این تعداد زیاد مشکل ساز خواهد شد.

۳-حداکثر زمان لازم برای تکمیل گردش کار را مدیریت کنیم(Workflow TimeOut). به صورت پیش فرض این مقدار ۵ دقیقه است.

اما چگونه؟

۱- برای مشاهده مقدار پیش فرض گردش کارهای همزمان می توان از دستور powerShell زیر استفاده کرد:

stsadm -o getproperty -pn workflow-eventdelivery-throttle

2011-11-17-ImproveWorkflowPerformance-01

برای تغییر این مقدار به مثلاً ۲۵ از دستور زیر استفاده می کنیم

stsadm -o setproperty -pn workflow-eventdelivery-throttle –pv "25"

2011-11-17-ImproveWorkflowPerformance-02

۲- برای مشاهده تعداد workItem های در انتظار پردازش در هر بار اجرای تایمر می توان از دستور زیر استفاده کرد:

stsadm -o getproperty -pn workitem-eventdelivery-batchsize

برای افزایش این مقدار به مثلاً ۱۲۵ می توان از دستور زیر استفاده کرد:

stsadm -o setproperty -pn workitem-eventdelivery-batchsize -pv "125"

2011-11-17-ImproveWorkflowPerformance-04

۳- برای مشاهده Workflow TimeOut :

stsadm -o getproperty -pn workflow-eventdelivery-timeout

2011-11-17-ImproveWorkflowPerformance-05

برای تغییر این مقدار به مثلا ۱۰ می توان از دستور زیر استفاده کرد:

stsadm -o setproperty -pn workflow-eventdelivery-timeout -pv "10"

2011-11-17-ImproveWorkflowPerformance-06

موفق و پیروز باشید.

مژگان بهروان

پاسخ دهید