@bobbybouwmann
Sorry for the late reply. My application integrates with forum software and it causes various parts of the forum software to break such as granting/removing usergroups, remotely posting threads, etc... (I take advantage of all these features.)
I've done some more research and discovered that apparently some people said calling queue:restart from envoyer when using forge just doesn't work as expected. (Which is a shame considering they are both made by the same person and integration I think was a big part.)
But now I'm just using a forge daemon to execute queue:restart every hour. Not even really sure if this works yet, I generally have to wait a few days to see if it breaks.
To give more information about the problem; It would appear after 3-4 days, the worker will still report it is active, but it will stop processing jobs. Only way to fix it is to restart the worker. While this worker is like this, my server sits at 100% cpu usage and as soon as the worker is restarted, it drops significantly.
So I'm not really sure what the issue is to be completely honest with you, and I've never seen anything about this issue before.
My current running solution is that Envoyer was skipping or breaking the queue:restart deployment hook and so after x amount of deploys, the application is left sitting in memory and it causes some very bad things to happen. Can't really provide anymore information than that sadly since I barely understand why this is happening myself.