cybercog / laravel-paket

Composer GUI. Manage Laravel dependencies from web interface without switching to command line!

Home Page:https://komarev.com/sources/laravel-paket

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Job domain name

antonkomarev opened this issue · comments

There are many names: Job, Task, Process, Process Group, what are they?

Process - a process is an instance of a program that is being executed. In some systems it's called Task. When we are trying to install or uninstall requirement - we are running OS process via Symfony\Component\Process\Process. It might possible that installation & uninstallation will require to run multiple processes one by one, so we need to aggregate processes to a group.

Linux shell creates a process group for each Job it launches, and places each process it starts into the appropriate process group. For example, ls | head is a pipeline of two processes, which the shell considers a single job, and will belong to a single, new process group.

To not over-engineer system at this stage we will have Job entity, which have only one Process for the sake of simplicity. In next versions we should revise need of ProcessGroup aggregate.

Usage of word Job might confuse developers because Laravel uses it for Queue Jobs. To avoid confusion jobs on framework side will be called queue jobs and will be placed in \QueueJobs\ namespace.

Paket Job Runner will be located in queue job Cog\Laravel\Paket\Job\QueueJobs\RunJob.