GithubHelp home page GithubHelp logo

Job info in handler about fivebeans HOT 8 CLOSED

gtamas avatar gtamas commented on June 9, 2024
Job info in handler

from fivebeans.

Comments (8)

bryanlarsen avatar bryanlarsen commented on June 9, 2024

In our fork (Exocortex/fivebeans) we add the stats to the payload as _stats, if payload is an object. There are a bunch of other hacks in there that we should PR. But this one and some timeout/failure detection we've added are pretty hacky -- probably trying too hard to avoid changing the API.

from fivebeans.

ceejbot avatar ceejbot commented on June 9, 2024

I'm totally okay with changing the API where it's sensible, or even handing over ownership of the project if you're up for it! I don't have this in production at the moment, so I don't have the incentive to drive it forward the way somebody who does have it in production has.

from fivebeans.

imjoshholloway avatar imjoshholloway commented on June 9, 2024

+1 on adding a key to the payload (something like $job) maybe?

from fivebeans.

cmawhorter avatar cmawhorter commented on June 9, 2024

+1 and making a change but payload is payload imo and I don't think this belongs there.

Howsabout changing this to be this:

switch(handler.work.length) {
  default: // do what is done now
  case 3: // use signature (id, payload, callback) or whatever
}

That's less than ideal though. If API changes are on the table I'd like to see the handler implementation reworked.

from fivebeans.

cmawhorter avatar cmawhorter commented on June 9, 2024

FWIW-- I implemented my suggestion in a patch and it is working for me. All tests pass too.

var fivebeans = require('fivebeans');
var _fivebeansWorkerCallHandler = fivebeans.worker.prototype.callHandler;
fivebeans.worker.prototype.callHandler = function(handler, jobID, jobdata)
{
  switch (handler.work.length) {
    case 3:
      var patchedHandler = {
        work: function(payload, callback) {
          return handler.work(jobID, payload, callback);
        }
      };
      return _fivebeansWorkerCallHandler.call(this, patchedHandler, jobID, jobdata);
    default:
      return _fivebeansWorkerCallHandler.apply(this, arguments);
  }
};

from fivebeans.

ceejbot avatar ceejbot commented on June 9, 2024

Cool, ty for this! Will advise when it's released.

from fivebeans.

ceejbot avatar ceejbot commented on June 9, 2024

Published on npm as v1.3.0, including version bumps for dependencies.

from fivebeans.

cmawhorter avatar cmawhorter commented on June 9, 2024

Wow, awesome!

from fivebeans.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.