Closed lijiang2014 closed 7 years ago
~- [ ] read the settings.htc file and write settings to redis DB . 这样其他组件可以从 redis 中读取 设置信息。~
~settings.htc file -> settings -> redis ["httc-settings"] -> settings~
可能还是用 json 对象来存放比较好
目前设置简单的 settings file .
(py34env-rh6.5) [nscc-gz_jiangli@ln2%tianhe2-C test]$ cat test.sh
src_path=/HOME/nscc-gz_jiangli/virtualenv/ht_celery
export PATH=$src_path:$PATH
export THHT_EXEC="/HOME/nscc-gz_jiangli/virtualenv/ht_celery/simtask.py"
export THHT_INPUT="input.htc"
yhbatch -N 2 $src_path/main.sh settings.htc
THHT_EXEC 和 THHT_INPUT 这两个环境变量最好指定一下 。 或者通过配置文件 : settings.htc 。 settings.htc 中 可以配置的内容可参考 config.py :
if sname.lower() in [ "exec" ] :
settings["job"]["exec"] = svalue
elif sname in [ "input" , "inp" ] :
settings["job"]["input"] = svalue
elif sname in [ "name" , "autoname" ] :
if svalue.lower() in [ "true" , "yes" , "1" ] :
settings["job"]["autoname"] = True
elif svalue.lower() in [ "false" , "no" , "0" ] :
settings["job"]["autoname"] = False
elif sname in [ "dir" , "workdir" , "autoworkdir" ] :
if svalue.lower() in [ "true" , "yes" , "1" ] :
settings["job"]["autoworkdir"] = True
elif svalue.lower() in [ "false" , "no" , "0" ] :
settings["job"]["autoworkdir"] = False
elif sname in settings["queue"].keys() :
settings["queue"][ sname ] = svalue
else :
print( " WARING : NO SUCH SETTING : " , eachLine )
其中最主要的还是 : EXEC 和 INPUT
目前设置简单的 settings file .
(py34env-rh6.5) [nscc-gz_jiangli@ln2%tianhe2-C test]$ cat test.sh
src_path=/HOME/nscc-gz_jiangli/virtualenv/ht_celery
export PATH=$src_path:$PATH
export THHT_EXEC="/HOME/nscc-gz_jiangli/virtualenv/ht_celery/simtask.py"
export THHT_INPUT="input.htc"
yhbatch -N 2 $src_path/main.sh settings.htc
THHT_EXEC 和 THHT_INPUT 这两个环境变量最好指定一下 。 或者通过配置文件 : settings.htc 。 settings.htc 中 可以配置的内容可参考 config.py :
if sname.lower() in [ "exec" ] :
settings["job"]["exec"] = svalue
elif sname in [ "input" , "inp" ] :
settings["job"]["input"] = svalue
elif sname in [ "name" , "autoname" ] :
if svalue.lower() in [ "true" , "yes" , "1" ] :
settings["job"]["autoname"] = True
elif svalue.lower() in [ "false" , "no" , "0" ] :
settings["job"]["autoname"] = False
elif sname in [ "dir" , "workdir" , "autoworkdir" ] :
if svalue.lower() in [ "true" , "yes" , "1" ] :
settings["job"]["autoworkdir"] = True
elif svalue.lower() in [ "false" , "no" , "0" ] :
settings["job"]["autoworkdir"] = False
elif sname in settings["queue"].keys() :
settings["queue"][ sname ] = svalue
else :
print( " WARING : NO SUCH SETTING : " , eachLine )
其中最主要的还是 : EXEC 和 INPUT
又做了些修改,修复了一些问题,一个范例如 :
(py34env-rh6.5) [nscc-gz_jiangli@ln2%tianhe2-C test]$ cat settings.htc
EXEC = /HOME/nscc-gz_jiangli/virtualenv/ht_celery/simtask.py
INPUT = input2.htc
queue.max_retries = 1
queue.default_retry_delay = 0
可参考 config.py
condor_submit [-verbose] [-unused] [-name schedd_name] [-remote schedd_name] [-addr $<$ip:port$>$] [-pool pool_name] [-disable] [-password passphrase] [-debug] [-append command ... ] [-spool] [-dump filename] [-interactive] [-dry-run] [-maxjobs <number-of-jobs>] [-single-cluster] [<submit-variable>=<value>] [submit description file] [-queue queue_arguments]
condor_submit 可以设置的参数非常多, httc 建议不这么复杂 。 还是用 .htc 文件来指定吧 : [JobName] [WorkDIr] [则, 目前的主要提交器其实主要是需要指定两个必须的变量 : executable 和 input , 其他的变量都应该有默认值(input 也可以有默认值 ) 。
目前的提交方式大概为 :
py34env-rh6.5) [nscc-gz_jiangli@ln2%tianhe2-C test]$ cat test.sh src_path=/HOME/nscc-gz_jiangli/virtualenv/ht_celery export PATH=$src_path:$PATH yhbatch -N 2 $src_path/main.sh (py34env-rh6.5) [nscc-gz_jiangli@ln2%tianhe2-C test]$
即是使用了默认的 input.htc , 但是 EXEC 是从 settings.py 里面读的,这样不怎么好,需要改为从环境变量中读取。