Commits on Jul 21, 2016
  1. @chrisccerami

    Merge pull request #1490 from CamJN/patch-1

    Updated links
    chrisccerami committed on GitHub Jul 21, 2016
  2. @CamJN

    Updated links

    CamJN committed on GitHub Jul 21, 2016
Commits on Jul 8, 2016
  1. @fw42

    Merge pull request #1489 from Shopify/fix-ci

    Use older json version
    fw42 committed on GitHub Jul 8, 2016
  2. @fw42

    Use older json version

    fw42 committed Jul 8, 2016
  3. @fw42

    Merge pull request #1487 from Shopify/refactor-work-loop-3

    Refactor work loop
    fw42 committed on GitHub Jul 8, 2016
  4. @fw42

    Refactor work loop

    fw42 committed Jul 7, 2016
Commits on Jul 7, 2016
  1. @fw42

    Merge pull request #1488 from Shopify/synchronously-remove-old-heartb…

    …eats
    
    Remove old heartbeats before starting heartbeat thread
    fw42 committed on GitHub Jul 7, 2016
  2. @fw42
Commits on Jul 5, 2016
  1. @fw42

    Merge pull request #1486 from Shopify/more-heartbeat-tests

    Add more tests
    fw42 committed on GitHub Jul 5, 2016
  2. @fw42

    Add more tests

    fw42 committed Jul 1, 2016
  3. @fw42

    Merge pull request #1484 from Shopify/wait-for-heartbeat-threads-to-die

    Wait for heartbeat threads to die
    fw42 committed on GitHub Jul 5, 2016
  4. @fw42

    Merge pull request #1485 from Shopify/fix-remove-heartbeat-when-unreg…

    …istering-worker
    
    [bugfix] Remove heartbeat when unregistering worker
    fw42 committed on GitHub Jul 5, 2016
  5. @fw42
Commits on Jul 3, 2016
  1. @fw42
Commits on Jun 30, 2016
  1. @fw42

    Merge pull request #1480 from Shopify/heartbeat-with-server-time

    [Bugfix] Heartbeat with server time, not worker time
    fw42 committed on GitHub Jun 30, 2016
  2. @fw42
Commits on Jun 27, 2016
  1. @fw42

    Merge pull request #1479 from Shopify/always-heartbeat-in-thread

    Always perform heatbeats in the heartbeat thread
    fw42 committed on GitHub Jun 27, 2016
  2. @fw42
Commits on Jun 23, 2016
  1. @fw42

    Merge pull request #1478 from Shopify/kill-all-heartbeat-threads

    Kill all heartbeat threads after each test run
    fw42 committed on GitHub Jun 23, 2016
Commits on Jun 22, 2016
  1. @fw42
  2. @dylanahsmith

    test: Ignore the heartbeat key when testing Resque.keys (#1477)

    This can cause a flaky test failure
    dylanahsmith committed on GitHub Jun 22, 2016
  3. @dylanahsmith
Commits on Jun 20, 2016
  1. @fw42

    Merge pull request #1474 from Shopify/master-vs-stable

    Cherry-pick 1-x-stable changes into master
    fw42 committed on GitHub Jun 20, 2016
  2. @chrisccerami @fw42

    Merge pull request #1403 from hasaniskandar/fix-failed-jobs-list-with…

    …-params-class
    
    Fixed failed jobs list when params[:class] specified
    chrisccerami committed with fw42 Apr 5, 2016
Commits on Jun 15, 2016
  1. @Sirupsen

    Merge pull request #1472 from dylanahsmith/data-store-auto-connect

    Fix auto-connect to redis when Resque.redis isn't set
    Sirupsen committed on GitHub Jun 15, 2016
  2. @Sirupsen

    Merge pull request #1471 from dylanahsmith/fix-redis-namespace

    Fix passing an Redis::Namespace object into Resque.redis=
    Sirupsen committed on GitHub Jun 15, 2016
Commits on Jun 14, 2016
  1. @dylanahsmith
  2. @dylanahsmith
Commits on Jun 2, 2016
  1. @chrisccerami

    Merge pull request #1468 from martinstuecklschwaiger/master

    Update jQuery file to newest version
    chrisccerami committed Jun 2, 2016
  2. @martinstuecklschwaiger
Commits on May 28, 2016
  1. @chrisccerami

    Merge pull request #1466 from chrisccerami/cherry-pick-from-1-x-stable

    Cherry pick from 1 x stable
    chrisccerami committed May 28, 2016
  2. @chrisccerami
  3. @davetron5000 @chrisccerami

    Create an abstraction between Resque and Redis

    I want to write code to access information about what's going on in
    Resque, but the code needs to work for multiple Resque instances in the
    same Ruby VM.  Because `Resque.redis` is global, it is very difficult
    (impossible in some cases) to use the Resque API directly.
    
    Provide an API that does not rely on a global variable that encapsulates
    all the ways in which Resque interacts with Redis, namely the names of
    keys and what sort of data structure is expected in those keys.
    
    Consider a call like this:
    
    ```ruby
    decode redis.lpop("queue:#{queue}")
    ```
    
    This should mean "decode the job on queue `queue`", but it actually
    means "decode whatever is in redis under the key `"queue:#{queue}"`
    which just so happens to be how we store queues, but don't worry about
    that right now, just go in Redis and do it".
    
    With this PR, it turns into this:
    
    ```ruby
    decode(@data_store.pop_from_queue(queue))
      ```
      which is saying "get me the job in queue `queue`, however that's done,
      and decode it.
    
      Which means that someone _else_ can do this without knowing how to
      construct the redis key for queue.
    
      And because that knowledge is now centralized in one class
      (`DataStore`) instead of littered throughout the codebase, one could
      perform these operations on multiple resque queues from the same Ruby
      VM, e.g. for monitoring:
    
      ```ruby
      resques = {
            www: '10.0.3.4:2345',
                   admin: '10.1.4.5:8765',
                       ops: '10.1.4.5:8766',
      }
    
    data_stores = Hash[resques.map { |name,location|
        [name,Resque::DataStore.new(Redis.new(location))]
    }]
    
    data_stores[:www].num_failed # => how many are failed in www's Resque
    data_stores[:admin].num_failed # => what about admin?
    stuck_workers = data_stores[:ops].workers.select { |worker|
        data_stores[:ops].worker_start_time(worker) > 1.hour.ago
    }
    ```
    And so forth.
    
    This is not an ideal design, but it solves the problem without breaking
    backwards compatibility and is better than what exists now, since it at
    least centralizes how Resque's data structures are stored in Redis.  It
    could also, in theory, allow a different backing store than Redis.
    
    I hacked a `concerning` concept to demonstrate which calls were relevant
    to what—this could be split into further classes.  It's also possible
    that versions of the major objects (`Resque`, `Worker`, and `Job`) could
    be created to not use a global for `redis`, but that is for another day.
    davetron5000 committed with chrisccerami Apr 27, 2014
  4. @chrisccerami

    Merge pull request #1463 from chrisccerami/update_jquery

    Update jQuery from 1.3.2 to 1.12.4
    chrisccerami committed May 28, 2016
Commits on May 26, 2016
  1. @chrisccerami

    Merge pull request #1465 from keylimetoolbox/no_pidfile_on_new

    Update HISTORY.md with details about API change for plugin authors.
    chrisccerami committed May 26, 2016