isFinished-3.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.isFinished = void 0;
  4. const content = `--[[
  5. Checks if a job is finished (.i.e. is in the completed or failed set)
  6. Input:
  7. KEYS[1] completed key
  8. KEYS[2] failed key
  9. KEYS[3] job key
  10. ARGV[1] job id
  11. ARGV[2] return value?
  12. Output:
  13. 0 - Not finished.
  14. 1 - Completed.
  15. 2 - Failed.
  16. -1 - Missing job.
  17. ]]
  18. local rcall = redis.call
  19. if rcall("EXISTS", KEYS[3]) ~= 1 then
  20. if ARGV[2] == "1" then
  21. return {-1,"Missing key for job " .. KEYS[3] .. ". isFinished"}
  22. end
  23. return -1
  24. end
  25. if rcall("ZSCORE", KEYS[1], ARGV[1]) then
  26. if ARGV[2] == "1" then
  27. local returnValue = rcall("HGET", KEYS[3], "returnvalue")
  28. return {1,returnValue}
  29. end
  30. return 1
  31. end
  32. if rcall("ZSCORE", KEYS[2], ARGV[1]) then
  33. if ARGV[2] == "1" then
  34. local failedReason = rcall("HGET", KEYS[3], "failedReason")
  35. return {2,failedReason}
  36. end
  37. return 2
  38. end
  39. if ARGV[2] == "1" then
  40. return {0}
  41. end
  42. return 0
  43. `;
  44. exports.isFinished = {
  45. name: 'isFinished',
  46. content,
  47. keys: 3,
  48. };
  49. //# sourceMappingURL=isFinished-3.js.map