Documentation ¶
Index ¶
- Constants
- func CompleteJob(db *sqlx.DB, job *Job, statusID int) error
- func LogJobMessage(db *sqlx.DB, job *Job, task, message string, percent int) error
- func NewDB(driver, dsn string) (*sqlx.DB, error)
- func QueueJob(db *sqlx.DB, job *Job) error
- type ExtraParams
- type Job
- func FetchAllJobs(db *sqlx.DB, status, limit, offset int) ([]*Job, error)
- func FetchDensityMap(db *sqlx.DB, token string) (*Job, error)
- func FetchFSCChart(db *sqlx.DB, token string) (*Job, error)
- func FetchJob(db *sqlx.DB, token string) (*Job, error)
- func FetchNextPending(db *sqlx.DB) (*Job, error)
- func FetchRawData(db *sqlx.DB, token string) (*Job, error)
- func FetchSummaryChart(db *sqlx.DB, token string) (*Job, error)
Constants ¶
View Source
const ( JobSchema = `` /* 516-byte string literal not displayed */ JobStatusSchema = ` create table if not exists job_status (id integer primary key, status string) ` )
View Source
const ( StatusPending // 1 StatusRunning // 2 StatusComplete // 3 StatusError // 4 )
Variables ¶
This section is empty.
Functions ¶
func LogJobMessage ¶
Log message for job
Types ¶
type ExtraParams ¶ added in v0.0.2
type ExtraParams struct { // Symmetry Symmetry int64 `db:"-" json:"ncs" valid:"-" schema:"ncs"` // Symmetry Axis SymmetryAxis int64 `db:"-" json:"ncs_axis" valid:"-" schema:"ncs_axis"` // Symmetry Steps SymmetrySteps string `db:"-" json:"ncs_steps" valid:"-" schema:"ncs_steps"` // Fit experimental data Fit bool `db:"-" json:"fit" valid:"-" schema:"fit"` // Enantiomer Enantiomer bool `db:"-" json:"enantiomer" valid:"-" schema:"enantiomer"` // Mode Mode string `db:"-" json:"mode" valid:"-" schema:"mode"` // Units Units string `db:"-" json:"units" valid:"-" schema:"units"` // Method Method string `db:"-" json:"method" valid:"-" schema:"-"` }
type Job ¶
type Job struct { ExtraParams // Unique ID for the Job ID int64 `db:"id" json:"id" valid:"-" schema:"-"` // Email Address Email string `db:"email" json:"-" valid:"email" schema:"email"` // Unique Job token Token string `db:"token" json:"-" valid:"-" schema:"-"` // Job Status ID StatusID int64 `db:"status_id" json:"-" valid:"-" schema:"-"` // Job Status string Status string `db:"status" json:"status" valid:"-" schema:"-"` // Task Name Task string `db:"task" json:"task" valid:"-" schema:"-"` // Percent complete PercentComplete int64 `db:"percent_complete" json:"percent_complete" valid:"-" schema:"-"` // Log message for task LogMessage string `db:"log_message" json:"log_message" valid:"-" schema:"-"` // Job Name Name string `` /* 192-byte string literal not displayed */ // File Type (dat | out) FileType string `db:"file_type" json:"-" valid:"-" schema:"-"` // Input data file (*.dat or GNOM *.out file) InputData []byte `db:"input_data" json:"-" valid:"-" schema:"-"` // Resulting density map in CCP4 format DensityMap []byte `db:"density_map" json:"-" valid:"-" schema:"-"` // Fourier SHell Correlation (FSC) Curve chart FSCChart []byte `db:"fsc_chart" json:"-" valid:"-" schema:"-"` // Summary stats chart SummaryChart []byte `db:"summary_chart" json:"-" valid:"-" schema:"-"` // A zip of the raw output from DENSS RawData []byte `db:"raw_data" json:"-" valid:"-" schema:"-"` // Maximum dimension of particle Dmax float64 `db:"dmax" json:"-" valid:"range(10.0|1000.0)~Dmax should be between 10 and 1000" schema:"dmax"` // Number of samples. This represents the size of the grid in each // dimension. The grid is 3D so NumSamples=31 would be 31 x 31 x 31. The // grid size will determine the speed of the calculation and memory used. // More samples means greater resolution. This is calculated by DENSS, it's // not given to DENSS but we want to control the speed of calcuation so we // use this parameter to determine the voxel size. NumSamples int64 `db:"num_samples" json:"-" valid:"range(2|500)~Number of samples should be between 2 and 500" schema:"-"` // Oversampling size Oversampling float64 `db:"oversampling" json:"-" valid:"range(2|50)~Oversampling should be between 2 and 50" schema:"-"` // Voxel Size VoxelSize float64 `db:"voxel_size" json:"-" valid:"range(1.0|100.0)~Voxel Size should be between 1 and 100" schema:"-"` // Number of electrons Electrons int64 `db:"electrons" json:"-" valid:"range(1|100000000)~Electrons should be between 1 and 1e8" schema:"electrons"` // Maximum number of steps MaxSteps int64 `db:"max_steps" json:"-" valid:"range(100|10000)~Max Steps should be between 100 and 10000" schema:"-"` // Maximum number of times to run DENSS MaxRuns int64 `db:"max_runs" json:"-" valid:"range(2|100)~Max Runs should be between 2 and 100" schema:"-"` // Params hack Params string `db:"params" json:"-" valid:"-" schema:"-"` // Time the job was submitted Submitted *time.Time `db:"submitted" json:"-" valid:"-" schema:"-"` // Time the job started running Started *time.Time `db:"started" json:"-" valid:"-" schema:"-"` // Time the job completed Completed *time.Time `db:"completed" json:"-" valid:"-" schema:"-"` // Current running/wait time for the job. Only used in json Time string `db:"-" json:"time" valid:"-" schema:"-"` }
A DENSS Job
func FetchAllJobs ¶ added in v0.0.2
Fetch all jobs by status
func FetchDensityMap ¶
Fetch job density map by token.
func FetchFSCChart ¶
Fetch job fsc chart by token.
func FetchJob ¶
Fetch job by token. This is used for displaying the Job status in the web interface and no raw binary data is included
func FetchNextPending ¶
Fetch next job in pending status, update status to running and return job
func FetchRawData ¶
Fetch job raw data by token.
func FetchSummaryChart ¶ added in v0.0.2
Fetch job summary chart by token.
func (*Job) MarshallParams ¶ added in v0.0.2
func (*Job) UnmarshallParams ¶ added in v0.0.2
Click to show internal directories.
Click to hide internal directories.