Spring XD:如何在单独的行中进行作业定义
SpringXD: How to make a job definition in seprate lines
我的工作定义很长。我想知道是否有一种方法可以将它分成多行以便于阅读。我尝试过使用 '\' 或 '\n' 但它们都无法创建工作,例如:
xd:>job create --name myHttpJob --definition "httpJob \n
job create --name myHttpJob --definition "httpJob \n
^
Cannot have an unbalanced number of quotation marks
xd:>--listeners=disable" --deploy
Command '--listeners=disable" --deploy' not found (for assistance press TAB)
xd:>job create --name myHttpJob --definition "httpJob \
job create --name myHttpJob --definition "httpJob \
^
Ran out of input in escape sequence
xd:>--listeners=disable" --deploy
Command '--listeners=disable" --deploy' not found (for assistance press TAB)
希望这仍然可以帮助那里的人。我认为您无法使用当前版本的 xd-shell 将命令分成多行,但我所做的是通过使用 shell 脚本将整个过程外部化整个过程。如果您需要多次 运行 相同或相似的命令并且您的命令可以参数化,这将很有用。以下是您的 shell 脚本将包含的内容示例(我们称文件为 myxdshellfile.sh)。我的所有自定义模块 upload/deploy/definition 和流都有类似的脚本。如果设置得当,您可以将其参数化以部署到不同的环境中,并将环境作为输入参数传递。
echo -n -e " \
job create --name ${module}_${version} \
--definition \"${moduleDefinition} \
--restartable=false \
--dateFormat=yyyy-MM-dd \
--makeUnique=true \
--partitionResultsTimeout=7200000 \
\
--jdbcDriver=com.mysql.jdbc.Driver \
--jdbcUser=${user} \
--jdbcPassword=${pwd} \
--jdbcUrl=jdbc:mysql://${dbhost} \
\
--version=${version} \
\
\"
" > "$cmdfile"
#write string to file
echo -e -n .${shellpath}/shell/bin/xd-shell --cmdfile ${cmdfile}
#see what's in the file
cat ${cmdfile}
#execute spring-xd shell
bash ${shellpath}/shell/bin/xd-shell --cmdfile ${cmdfile}
我的工作定义很长。我想知道是否有一种方法可以将它分成多行以便于阅读。我尝试过使用 '\' 或 '\n' 但它们都无法创建工作,例如:
xd:>job create --name myHttpJob --definition "httpJob \n
job create --name myHttpJob --definition "httpJob \n
^
Cannot have an unbalanced number of quotation marks
xd:>--listeners=disable" --deploy
Command '--listeners=disable" --deploy' not found (for assistance press TAB)
xd:>job create --name myHttpJob --definition "httpJob \
job create --name myHttpJob --definition "httpJob \
^
Ran out of input in escape sequence
xd:>--listeners=disable" --deploy
Command '--listeners=disable" --deploy' not found (for assistance press TAB)
希望这仍然可以帮助那里的人。我认为您无法使用当前版本的 xd-shell 将命令分成多行,但我所做的是通过使用 shell 脚本将整个过程外部化整个过程。如果您需要多次 运行 相同或相似的命令并且您的命令可以参数化,这将很有用。以下是您的 shell 脚本将包含的内容示例(我们称文件为 myxdshellfile.sh)。我的所有自定义模块 upload/deploy/definition 和流都有类似的脚本。如果设置得当,您可以将其参数化以部署到不同的环境中,并将环境作为输入参数传递。
echo -n -e " \
job create --name ${module}_${version} \
--definition \"${moduleDefinition} \
--restartable=false \
--dateFormat=yyyy-MM-dd \
--makeUnique=true \
--partitionResultsTimeout=7200000 \
\
--jdbcDriver=com.mysql.jdbc.Driver \
--jdbcUser=${user} \
--jdbcPassword=${pwd} \
--jdbcUrl=jdbc:mysql://${dbhost} \
\
--version=${version} \
\
\"
" > "$cmdfile"
#write string to file
echo -e -n .${shellpath}/shell/bin/xd-shell --cmdfile ${cmdfile}
#see what's in the file
cat ${cmdfile}
#execute spring-xd shell
bash ${shellpath}/shell/bin/xd-shell --cmdfile ${cmdfile}