Skip to content

Instantly share code, notes, and snippets.

@tieleman
Last active December 14, 2015 15:28
Show Gist options
  • Save tieleman/5107660 to your computer and use it in GitHub Desktop.
Save tieleman/5107660 to your computer and use it in GitHub Desktop.
Script to demonstrate an issue in Sequelize. https://github.com/sequelize/sequelize/issues/481
var Sequelize = require('sequelize');
// Set up database connection
var sql = new Sequelize('database', 'root', '', {
dialect: 'mysql'
});
// Global counter
var counter = 0;
// Define simple model
var Job = sql.define('Job', {
counter: { type: Sequelize.INTEGER }
});
// Sync model to database and start counter process
Job.sync().success(function() {
Job.create({ counter: counter}).success(function (job) {
updateCounter(job);
});
});
// Update a job with an incremented counter, loops infinitely.
function updateCounter(job) {
counter++;
console.log("Run " + counter);
job.counter = counter;
job.save().success(function () {
// save completed!
console.log('Save completed ' + counter);
updateCounter(job);
}).error(function (err) {
// something bad :(
console.log('Save failed ' + counter);
updateCounter(job);
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment