crodrigoquero / C4Imaging

Workflow system based in Windows 10 / Linux services.
1 stars 0 forks source link

3th Main System Characteristic / feature not fulfilled #59

Closed crodrigoquero closed 3 years ago

crodrigoquero commented 3 years ago

Once in a workflow chain the nodes will work ok until 3th. step or sate. Once there, they will point to the inbox of the 1st state, so the categorization will start again from there.

Expected behavior

State 4 output for 1st Sample Configuration (multi-state version

Current behavior

The fiinal state show in this image will never happen; the 3th ste will create categorization directories from the 1st ste output directories.

Conext

The 3th Main System Characteristic promise that The Workflow nodes are movable but it seems such a promise is not fulfilled.

crodrigoquero commented 3 years ago

Problem solved.

Workflow states will work as expected independently of its order on the workflow chain.

So,, if any other previous workflow state CREATES A NEW CATEGORY during its execution, the current workflow state will restart automatically in order to setup the necessary directory and file watchers.

Also, if any other previous workflow state DELETES A GIVEN CATEGORY during its execution, the current workflow state will restart automatically in order to remove unnecessary directory / file watchers.

FYR, each file / folder watcher has an event handlers associated to it. The system is pretty optimized to consider only the changes in the workflow file system that are releveant for it, i.e. the changes produced by previous workflow states.

I have carried out all sort of testings, so now I'm pretty sure everything is working as it was originally planned.

I have added a new class to help in the workflow directories monitoring, and I also refactorized the worker code, which now is simpler and clean.

I have removed some unnecesary files by adding a .gitignore file.

I still have to carry out some refactoring, in order to implement better functional segregation and reusability, but for now its works!