@@ -29,7 +29,8 @@ var JobUtils = {
2929 } else {
3030 JobUtils . sql = new Sequelize ( config [ 'database' ] [ 'database' ] , config [ 'database' ] [ 'username' ] , config [ 'database' ] [ 'password' ] , {
3131 dialect : config [ 'database' ] [ 'dialect' ] ,
32- storage : config [ 'database' ] [ 'database' ]
32+ storage : config [ 'database' ] [ 'database' ] ,
33+ host : config [ 'database' ] [ 'host' ]
3334 } ) ;
3435 }
3536 }
@@ -40,6 +41,19 @@ var JobUtils = {
4041 return JobUtils . pad ( ( process . umask ( ) ^ 0777 ) . toString ( 8 ) , '0' , 4 ) ;
4142 } ,
4243
44+ markUnknownState : function ( callback ) {
45+ Job . findAll ( { where : { status : StatusCodes . PROCESSING } } ) . success ( function ( result ) {
46+ if ( result . length > 0 ) {
47+ for ( var job in result ) {
48+ result [ job ] . status = StatusCodes . UNKNOWN ;
49+ result [ job ] . message = "The transcoder quit unexpectedly or the database was unavailable for some period." ;
50+ result [ job ] . save ( ) ;
51+ }
52+ }
53+ } ) ;
54+ callback ( null ) ;
55+ } ,
56+
4357 migrateDatabase : function ( callback ) {
4458 var migrator = JobUtils . getDatabase ( ) . getMigrator ( { path : __dirname + "/../migrations" } ) ;
4559 migrator . migrate ( ) . success ( function ( ) {
@@ -73,7 +87,13 @@ var Job = JobUtils.getDatabase().define('Job', {
7387 classMethods : {
7488 prepareDatabase : function ( callback ) {
7589 JobUtils . migrateDatabase ( function ( err ) {
76- err ? callback ( err ) : callback ( null ) ;
90+ if ( err ) {
91+ callback ( err ) ;
92+ } else {
93+ JobUtils . markUnknownState ( function ( err ) {
94+ err ? callback ( err ) : callback ( null ) ;
95+ } )
96+ }
7797 } ) ;
7898 } ,
7999 create : function ( opts , callback , completeCallback ) {
0 commit comments