changeset 77655 | 136ab737a36d |
parent 77654 | 78913f29fc21 |
child 77656 | fd553b54fce1 |
77654:78913f29fc21 | 77655:136ab737a36d |
---|---|
539 val table = make_table("workers", |
539 val table = make_table("workers", |
540 List(worker_uuid, build_uuid, hostname, java_pid, java_start, start, stamp, stop, serial)) |
540 List(worker_uuid, build_uuid, hostname, java_pid, java_start, start, stamp, stop, serial)) |
541 |
541 |
542 val serial_max = serial.copy(expr = "MAX(" + serial.ident + ")") |
542 val serial_max = serial.copy(expr = "MAX(" + serial.ident + ")") |
543 } |
543 } |
544 |
|
545 def read_serial(db: SQL.Database): Long = |
|
546 db.execute_query_statementO[Long]( |
|
547 Workers.table.select(List(Workers.serial_max)), |
|
548 res => res.long(Workers.serial) |
|
549 ).getOrElse(0L) |
|
544 |
550 |
545 def read_workers( |
551 def read_workers( |
546 db: SQL.Database, |
552 db: SQL.Database, |
547 build_uuid: String = "", |
553 build_uuid: String = "", |
548 worker_uuid: String = "" |
554 worker_uuid: String = "" |
563 stop = res.get_date(Workers.stop), |
569 stop = res.get_date(Workers.stop), |
564 serial = res.long(Workers.serial)) |
570 serial = res.long(Workers.serial)) |
565 }) |
571 }) |
566 } |
572 } |
567 |
573 |
568 def serial_max(db: SQL.Database): Long = |
|
569 db.execute_query_statementO[Long]( |
|
570 Workers.table.select(List(Workers.serial_max)), |
|
571 res => res.long(Workers.serial) |
|
572 ).getOrElse(0L) |
|
573 |
|
574 def start_worker( |
574 def start_worker( |
575 db: SQL.Database, |
575 db: SQL.Database, |
576 worker_uuid: String, |
576 worker_uuid: String, |
577 build_uuid: String, |
577 build_uuid: String, |
578 hostname: String, |
578 hostname: String, |
830 db: SQL.Database, |
830 db: SQL.Database, |
831 worker_uuid: String, |
831 worker_uuid: String, |
832 hostname: String, |
832 hostname: String, |
833 state: State |
833 state: State |
834 ): State = { |
834 ): State = { |
835 val serial0 = serial_max(db) |
835 val serial_db = read_serial(db) |
836 if (serial0 == state.serial) state |
836 if (serial_db == state.serial) state |
837 else { |
837 else { |
838 val serial = serial0 max state.serial |
838 val serial = serial_db max state.serial |
839 stamp_worker(db, worker_uuid, serial) |
839 stamp_worker(db, worker_uuid, serial) |
840 |
840 |
841 val numa_next = Host.Data.read_numa_next(db, hostname) |
841 val numa_next = Host.Data.read_numa_next(db, hostname) |
842 val sessions = pull1(read_sessions_domain(db), read_sessions(db, _), state.sessions) |
842 val sessions = pull1(read_sessions_domain(db), read_sessions(db, _), state.sessions) |
843 val workers = read_workers(db) |
843 val workers = read_workers(db) |