There will be no more than one sisyphus job of a certain name running at every given time.
When the job is already running and a second is started, the second one will quit immediately if the first one hasn't exceeded its maximum allowed lifetime yet.
If it has exceeded the allowed lifetime the first job will be killed and the second will start running. In addition to that, logging features are provided. To use this module, you must derive your own class from Job and implement the execu derive y.