... ادامه آموزش نحوه استفاده از توابع تاخیر و بیداری در اتوماسیون
توابع بیداری
با استفاده از این توابع، می توانیم گردش کار را تا یک تاریخ و زمان مشخص و دلخواه به تاخیر بیندازیم. یعنی در واقع مثل این است که گردش کار به خواب می رود و در زمانی که ما مشخص می کنیم بیدار می شود و چرخه کار ادامه پیدا می کند. بنابراین کار اصلی در این تابع، تعیین یک تاریخ و زمان مشخص و دقیق به عنوان زمان بیداری است.
زمان بیداری به عنوان خروجی تابع
برای روشن شدن بیشتر این موضوع، یک تابع بیداری نمونه توجه کنید:
اگرچه شما می توانید هر تاریخی را برای بیداری فرایند انتخاب کنید اما برای سادگی و کاربردی بودن مطلب فرض می کنیم می خواهیم یک گردش کار به محض رسیدن به یک وضعیت خاص تا ساعت 10:15 متوقف و از این ساعت به کار خود ادامه بدهد. همانطور که مشاهده می کنیددر این تابع از کلاس ()Date در جاوااسکریپت استفاده شده است که کلا برای تاریخ و زمان به کار می رود. در ادامه روند کار را خط به خط توضیح می دهیم:
تعریف یک متغیر از نوع تاریخ -زمان (()var today=new Date )
روش کار به این شکل است که ابتدا یک متغیر از نوع() Date تعریف می کنیم. در حالت کلی می توانیم هر تاریخ و زمان دلخواهی را داخل پرانتز تعیین کنیم اما اگر داخل پرانتز خالی باشد به معنی تاریخ و زمان جاری (Current Date/Time) است. به این ترتیب متغیر today هر لحظه تاریخ و زمان جاری را نشان می دهد.
تعیین زمان دلخواه برای بیداری
حال با استفاده از متدهای Set Date زمان دقیق مورد نظر خود را تعیین می کنیم. یعنی با استفاده از setHours ساعت و با setMinutes دقیقه را تعیین می کنیم. به این ترتیب مقدار متغیر today برابر می شود با تاریخ امروز و ساعت 10:15
توضیح: علاوه بر ساعت و دقیقه، متدهای دیگری هم وجود دارد که مقدار سال، ماه، روز، ثانیه و میلی ثانیه را هم تعیین می کنند که برای سادگی کار در این مثال فقط از این دو متد استفاده شده است.
خروجی تابع بیداری (return today)
و بالاخره متغیر today به عنوان خروجی این تابع تعیین می شود. به این ترتیب گردش کار تا زمان مشخص شده در today متوقف می شود و در این زمان بیدار شده و به کار خود ادامه می دهد.
به دوستان توصیه می کنم برای آشنایی بیشتر با کلاس Date به لینک زیر و صفحات مرتبط با آن مراجعه کنند.
https://www.w3schools.com/js/js_dates.asp
امیدوارم این مطلب برای همکاران محترم مفید بوده باشد. منتظر توضیحات شما هستم.
با تشکر