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