Ejemplo n.º 1
0
Archivo: jobtx.go Proyecto: unikk/cuto
// JOBテーブルへUPDATEする。
//
// param - conn DBコネクション
//
// param - job JOBレコード構造体ポインタ
func UpdateJob(conn db.IConnection, job *db.JobResult, mutex *sync.Mutex) error {
	mutex.Lock()
	defer mutex.Unlock()

	var isCommit bool
	tx, err := conn.GetDbMap().Begin()
	if err != nil {
		return err
	}
	defer func() {
		if !isCommit {
			tx.Rollback()
		}
	}()

	job.UpdateDate = utctime.Now().String()

	if _, err = tx.Update(job); err != nil {
		return err
	}
	if err = tx.Commit(); err != nil {
		return err
	}
	isCommit = true
	return nil
}
Ejemplo n.º 2
0
// ジョブネットワークのインスタンスIDを指定して、ジョブ情報をマップ形式で取得する。
func GetJobMapOfTargetNetwork(conn db.IConnection, nid int) (map[string]*db.JobResult, error) {
	q := CreateJobQuery(conn)
	q.AddAndWhereID(nid)

	list, err := conn.GetDbMap().Select(db.JobResult{}, q.sql)
	if err != nil {
		return nil, err
	}

	results := make(map[string]*db.JobResult)
	for _, l := range list {
		r := l.(*db.JobResult)
		results[r.JobId] = r
	}
	return results, nil
}
Ejemplo n.º 3
0
// ジョブネットワークのインスタンスIDを指定して、ジョブ情報を取得する。
//
// param - conn 接続済みのDBコネクション。
//
// param - nid 検索に使用するジョブネットワークのインスタンスID。
//
// param - orderby 昇順(query.ORDERBY_ASC) / 降順(query.ORDERBY_DESC)
//
// return ジョブネットワークレコードのスライスとエラー情報
func GetJobsOfTargetNetwork(conn db.IConnection, nid int, orderby int) ([]*db.JobResult, error) {
	q := CreateJobQuery(conn)
	q.AddAndWhereID(nid)
	q.AddOrderBy(orderby)

	list, err := conn.GetDbMap().Select(db.JobResult{}, q.sql)
	if err != nil {
		return nil, err
	}
	var results []*db.JobResult
	for _, l := range list {
		r := l.(*db.JobResult)
		results = append(results, r)
	}
	return results, nil
}
Ejemplo n.º 4
0
// JOBテーブルの総件数を取得する。
func JobCountAll(conn db.IConnection) int {
	num, _ := conn.GetDbMap().SelectInt("select count(*) from JOB")
	return int(num)
}