Skip to content

Instantly share code, notes, and snippets.

// index.js
const http = require('http');
const uuid = require('uuid');
const SomeResource = require('./some_resource');
const namespace = require('./node-request-context').createNamespace('some-namespace');
http.createServer(function (req, res) {
namespace.run(() => {
const transactionId = uuid.v1();
console.log('Setting a new transaction id => ', transactionId);
namespace.set('tid', transactionId);
const request = require('request-promise-native');
const namespace = require('./node-request-context').getNamespace('some-namespace');
class SomeResource {
get() {
console.log(namespace.get('tid'));
return request('http://www.google.com').then((res) => {
// Java
public boolean isEmpty(String s) {
  return s.length() == 0;
}
# ruby
def empty?(s)

Persisted Sidekiq

Sidekiq is a Redis-backed Ruby library for creating background jobs.

Obviously, Redis is in memory. Since our tasks are very important, we cannot tolerate "missing" jobs as a consequence of Redis failures (such as sudden shutdown due to electricity issues and so on).

Your task is to create PersistedSidekiq, Redis-backed with DB fallback library for creating background jobs.

Requirements

  1. PersistedSidekiq should use Sidekiq internally.