39 lines
1.9 KiB
XML
39 lines
1.9 KiB
XML
<IMPLEMENTATION name="FileSystemTaskSource">
|
||
<IMPLEMENTS_INTERFACE type="TaskSource"/>
|
||
|
||
<DESCRIPTION>
|
||
Реализует канал получения задач через сканирование директории 'tasks/'
|
||
на наличие файлов со статусом 'pending'.
|
||
</DESCRIPTION>
|
||
|
||
<METHOD_IMPLEMENTATION name="GetNextPendingTask">
|
||
<OPERATIONAL_LOOP name="FindPendingTask">
|
||
<STEP id="1" name="List_Files_In_Tasks_Directory">
|
||
<ACTION>Выполни команду `ReadFolder` для директории `tasks/`.</ACTION>
|
||
<ACTION>Сохрани результат в переменную `task_files_list`.</ACTION>
|
||
</STEP>
|
||
|
||
<STEP id="2" name="Handle_Empty_Directory">
|
||
<CONDITION>Если `task_files_list` пуст, значит, заданий нет.</CONDITION>
|
||
<ACTION>Вернуть `NULL`.</ACTION>
|
||
</STEP>
|
||
|
||
<STEP id="3" name="Iterate_And_Find_First_Pending_Task">
|
||
<LOOP variable="filename" in="task_files_list">
|
||
<SUB_STEP id="3.1" name="Read_File_With_Hierarchical_Fallback">
|
||
<!-- ... Полная логика чтения файла ... -->
|
||
</SUB_STEP>
|
||
<SUB_STEP id="3.2" name="Check_Status_And_Process_Task">
|
||
<CONDITION>Если `file_content` НЕ пуста И содержит `status="pending"`,</CONDITION>
|
||
<ACTION>Вернуть `file_content`.</ACTION>
|
||
</SUB_STEP>
|
||
</LOOP>
|
||
</STEP>
|
||
|
||
<STEP id="4" name="Handle_No_Pending_Tasks_Found">
|
||
<ACTION>Вернуть `NULL`.</ACTION>
|
||
</STEP>
|
||
</OPERATIONAL_LOOP>
|
||
</METHOD_IMPLEMENTATION>
|
||
</IMPLEMENTATION>
|