A distributed task manager.
- Distributed task management.
- Distributed, cooperative, process-aware semaphores and mutexes.
- Static cron scheduling.
- Multi-process model.
- Distributed IPC.
Real-world use cases for Kōjō and instructions for getting Kōjō up and running in your project can be found at KojoFitness.
XDebug version greater than xdebug-2.7.0alpha1 is required when trying to debug Kōjō. This version of XDebug resolves issues (https://bugs.xdebug.org/938) caused by the way the Kōjō forks using pcntl.
If you are using PhpStorm and you have more concurrent Kōjō jobs running than the Max. simultaneous connections defined for your XDebug listener, Kōjō will appear to hang. To avoid this, increase your Max. simultaneous connections to the max value of 20 in PhpStorm's preferences under Languages & Frameworks > PHP > Debug, External connections section.
- Stop all local containers and rebuild them
- Run
ps -auxfto see if any processes are still running Kōjō with a title likeneighborhoods-kojo: /server[8]/root[22]/job[30]- If yes run
pkill -9 -f kojoto SIG_KILL all the processes containing the wordkojo
- If yes run
- Run
docker-compose exec redis redis-cli monitorto see if Kōjō is creating any activity in redis.- If nothing is streaming by like
"GET" "/neighborhoods/kojo/area_manager/job_state_changelog_processor.lock"messages then something else is blocking the execution of Kōjō internals. This is typically due to a debugger.
- If nothing is streaming by like
- Turn off the debugger. Sometimes this will mess with Kojo
- Check your version of XDebug (version before
2.7.0won't work and2.8.2has seen some odd behavior. Recommend2.9.2) - Checkout the debugging logs Troubleshooting common PHP debugging issues - Help | PhpStorm