migrate.coffee 1.1 KB

1234567891011121314151617181920212223242526272829
  1. RedisManager = require "./app/coffee/RedisManager"
  2. UpdateManager = require "./app/coffee/UpdateManager"
  3. LockManager = require "./app/coffee/LockManager"
  4. handleErrorInsideLock = (doc_id, lockValue, original_error, callback = (error) ->) ->
  5. LockManager.releaseLock doc_id, lockValue, (lock_error) ->
  6. callback(original_error)
  7. migrateDoc = (doc_id, callback = (error) ->) ->
  8. LockManager.getLock doc_id, (error, lockValue) ->
  9. return callback(error) if error?
  10. RedisManager.getAndSetDoc doc_id, (error, project_id) ->
  11. return handleErrorInsideLock(doc_id, lockValue, error, callback) if error?
  12. RedisManager.getAndSetProject project_id, (error) ->
  13. return handleErrorInsideLock(doc_id, lockValue, error, callback) if error?
  14. LockManager.releaseLock doc_id, lockValue, (error) ->
  15. return callback(error) if error?
  16. UpdateManager.continueProcessingUpdatesWithLock project_id, doc_id, callback
  17. doc_id = process.argv[2]
  18. if !doc_id?
  19. console.log "Usage: coffee migrate.coffee DOC_ID"
  20. process.exit(1)
  21. migrateDoc doc_id, (error) ->
  22. throw error if error?
  23. setTimeout () ->
  24. process.exit(0)
  25. , 200