1
0
Fork 0
mirror of https://github.com/mperham/sidekiq.git synced 2022-11-09 13:52:34 -05:00
Commit graph

27 commits

Author SHA1 Message Date
Mike Perham
b5f3d36b50 Fix crash on exit when Redis is down, #2235 2015-03-13 12:07:01 -07:00
Michael DiScala
ebd06ec67a Add random string to process identity.
In environments with deterministic hostnames and PIDs (i.e. Heroku), the
current system for constructing a process's identity string produces
collisions (e.g. a new process can assume the identity of one that has
died). In order to address this, we add a random string to the identity string.
Issue #2071.
2014-12-31 20:09:01 +00:00
Mike Perham
8edaaeec1e Ignore trap_exit if no reason, fixes #2057 2014-12-10 09:26:55 -08:00
Mike Perham
b4a6e9460d Rewrite shutdown signalling, fixes #2056
There's a race condition between sending the shutdown message and waiting for the "shutdown finished" signal to come back.  Instead use a shared CondVar which is not racy.
2014-11-18 10:50:42 -08:00
Mike Perham
2b7c04407a Helpful comment is helpful 2014-09-10 10:43:06 -07:00
Mike Perham
102f999122 Call alive?, helps with #1690? 2014-08-26 08:40:38 -07:00
Mike Perham
5de3ef4353 Send the full process info on each heartbeat so transient timeouts don't lead to a process disappearing in Busy, fixes #1884 2014-08-07 21:03:34 -07:00
Mike Perham
3452efaf0b pipeline the shutdown 2014-06-06 08:37:23 -07:00
Mike Perham
c293d20aa8 Clear worker state upon shutdown, fixes #1764 2014-06-05 16:29:17 -07:00
Mike Perham
aecfa92a68 Allow process-specific labels for feature tagging, fixes #1673 2014-05-31 14:11:28 -07:00
Jonathan Hyman
5364af1939 Minor code update to not pass around variables that aren't necessary to pass around. 2014-03-21 23:46:14 -04:00
Mike Perham
edbcde1b6e Make heartbeat API private within Launcher 2014-03-21 08:53:22 -07:00
Mike Perham
ba8c8a57b9 Rework process/worker data model.
We no longer have a global 'workers' set but rather a global 'processes' set.  Each process has its own workers hash, keyed by thread id.

Rely as much as possible on Redis key expiration to naturally prune any lingering data.  Process data only has a one minute TTL, with the heartbeat refreshing the TTL, so it will expire quickly after a process dies.
2014-03-07 22:41:10 -08:00
Mike Perham
ff9db33666 Update Web UI, add new Busy tab with process heartbeat and job info 2014-03-06 21:30:11 -08:00
Mike Perham
ee7e181bd6 Rejigger heartbeat data to be a stable hash, not a time-based sorted set. 2014-03-02 21:18:26 -08:00
Mike Perham
bbe245e4ff Initial pass at heartbeat, still failing tests 2014-03-02 16:36:00 -08:00
Jonathan Hyman
e0c20d1612 Remove async on termination of fetcher/poller, leave everything else the same. 2014-01-10 14:58:53 -05:00
Jonathan Hyman
8d1eb10f28 Terminate the poller and the fetcher synchronously. 2014-01-10 11:56:20 -05:00
Jonathan Hyman
dd805e3fa8 Attempt a bulk requeue for reliable-fetch when shutting down.
I believe there is a case where an #assign will happen after a requeue and cause work to remain in the reliable-fetch queue.
2013-12-21 07:59:36 -06:00
Mike Perham
a8c0e28bba Whoa, reason is actually an Exception. Didn't know that. 2013-09-22 20:48:17 -07:00
Mike Perham
a7b422af9b Change watchdog to propagate exceptions so Sidekiq quickly dies, #1194. 2013-09-22 14:05:29 -07:00
Mike Perham
92f62f1af0 Polish launcher 2013-09-21 20:17:37 -07:00
Mike Perham
5635d4fbc6 Update Launcher to monitor the core Actors, #1194 2013-09-21 17:05:33 -07:00
Brian Goff
adeaa84db9 Supervise Sidekiq::Manager
This should resolve issues where if the manager actor crashes Sidekiq should no longer freeze
2013-09-21 10:51:49 -04:00
Mike Perham
b7089ef746 Delay launcher until after daemonization 2013-02-22 12:40:19 -08:00
Lin Jen-Shin
13c940eb7d Extract procline feature from Manager to Launcher.
We don't want to touch the process name if we're integrating
Sidekiq into existing process, so better not to put procline
assignment in Manager, but in CLI where we launch standalone
Sidekiq process.
2013-02-17 22:50:27 +08:00
Lin Jen-Shin
f17e94acc8 Add Sidekiq::Launcher, extracted from Sidekiq::CLI.
This is a step forward to run Sidekiq inside a process,
making it more easily to integrate into existing process.
2013-02-17 22:49:48 +08:00