I have a process which creates a new object from a backgroundrb job.
This object is versioned and the version is based on the existing
objects in this table. For example, I’ve got a table called
spreadsheets and it has a column called version. Each version is
incremental and when a new one is created, the last version is found by
The problem I’m having is that when two background jobs are creating the
same type of object, the read the table at the same time and thus assign
the same version number to the object they are saving. I end up with
two objects with the same version number. I cannot make it a unique
column because it the table holds different objects with different
Would locking the entire table be a good solution to this problem? It
seems like it will cause timeout problems. If this is the way to go,
what is the best “rails” way to accomplish this? If not, what
suggestions do you have on how to solve this problem?