Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
csst
Scalebox Apps
Commits
dc6bdfaa
Commit
dc6bdfaa
authored
Apr 22, 2026
by
Zhang Xiaoli
Browse files
For scalebox version=2604170059, update the code. job > module
parent
5e54895c
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
41 additions
and
36 deletions
+41
-36
L1/dockerfiles/message-router/Makefile
L1/dockerfiles/message-router/Makefile
+1
-1
L1/dockerfiles/message-router/messageRoute.py
L1/dockerfiles/message-router/messageRoute.py
+21
-21
L1/dockerfiles/redis-cli/Makefile
L1/dockerfiles/redis-cli/Makefile
+6
-2
L1/dockerfiles/redis-cli/run.sh
L1/dockerfiles/redis-cli/run.sh
+10
-11
L1/dockerfiles/redis-cli/test.sh
L1/dockerfiles/redis-cli/test.sh
+3
-1
No files found.
L1/dockerfiles/message-router/Makefile
View file @
dc6bdfaa
IMAGE_NAME
:=
csst/message-router-mbi
:
IMAGE_NAME
:=
csst/message-router-mbi
build
:
docker
build
--network
=
host
-t
$(IMAGE_NAME)
.
...
...
L1/dockerfiles/message-router/messageRoute.py
View file @
dc6bdfaa
...
...
@@ -32,7 +32,7 @@ class messageRoute():
print
(
f
"Invalid JSON format in headers:
{
e
}
, headers:
{
headersstr
}
"
)
return
if
headers
==
"null"
or
"from_
job
"
not
in
headersstr
:
if
headers
==
"null"
or
"from_
module
"
not
in
headersstr
:
print
(
"received redis-cli message"
)
dag_run_id
=
headersstr
[
"dag_run_id"
]
sorted_tag
=
headersstr
[
"sorted_tag"
]
...
...
@@ -41,13 +41,13 @@ class messageRoute():
else
:
try
:
# headersstr = json.loads(headers)
from_
job
=
headersstr
[
"from_
job
"
]
from_
module
=
headersstr
[
"from_
module
"
]
#from_ip=headersstr["from_ip"]
dag_run_id
=
headersstr
[
"dag_run_id"
]
sorted_tag
=
headersstr
[
"sorted_tag"
]
data_list
=
headersstr
.
get
(
"data_list"
)
print
(
"from_
job
:"
+
from_
job
+
" dag_run_id :"
+
dag_run_id
+
" sorted_tag :"
+
sorted_tag
+
"data_list :"
+
data_list
)
messageRoute
.
sendsink
job
s
(
dagfile
,
sorted_tag
,
dag_run_id
,
data_list
,
from_
job
,
message
)
print
(
"from_
module
:"
+
from_
module
+
" dag_run_id :"
+
dag_run_id
+
" sorted_tag :"
+
sorted_tag
+
"data_list :"
+
data_list
)
messageRoute
.
sendsink
module
s
(
dagfile
,
sorted_tag
,
dag_run_id
,
data_list
,
from_
module
,
message
)
except
json
.
JSONDecodeError
as
e
:
print
(
"Invalid JSON format in headers:"
,
e
)
...
...
@@ -60,32 +60,32 @@ class messageRoute():
for
task
in
tasks
:
if
'dependencies'
not
in
task
:
print
(
f
"任务 '
{
task
[
'name'
]
}
' 没有 dependencies 字段。"
)
sink_
job
=
task
[
'image'
]
print
(
"The header
job
is "
+
sink_
job
)
messageRoute
.
sendmsg
(
sorted_tag
,
dag_run_id
,
data_list
,
sink_
job
,
message
)
sink_
module
=
task
[
'image'
]
print
(
"The header
module
is "
+
sink_
module
)
messageRoute
.
sendmsg
(
sorted_tag
,
dag_run_id
,
data_list
,
sink_
module
,
message
)
@
classmethod
def
sendsink
job
s
(
self
,
dagfile
,
sorted_tag
,
dag_run_id
,
data_list
,
from_
job
,
message
):
def
sendsink
module
s
(
self
,
dagfile
,
sorted_tag
,
dag_run_id
,
data_list
,
from_
module
,
message
):
#解析对应的DAG文件
#from_
job
='csst-msc-l1-mbi'
#from_
module
='csst-msc-l1-mbi'
with
open
(
dagfile
,
"r"
,
encoding
=
'utf-8'
)
as
f
:
data
=
yaml
.
safe_load
(
f
)
tasks
=
data
.
get
(
'tasks'
,
[])
# 先找到 from_
job
对应的 image
# 先找到 from_
module
对应的 image
for
task
in
tasks
:
if
task
.
get
(
'image'
)
==
from_
job
:
from_
job
=
task
.
get
(
'name'
)
print
(
"The header
job
is "
+
from_
job
)
if
task
.
get
(
'image'
)
==
from_
module
:
from_
module
=
task
.
get
(
'name'
)
print
(
"The header
module
is "
+
from_
module
)
break
for
task
in
tasks
:
dependencies
=
task
.
get
(
'dependencies'
,
[])
if
from_
job
in
dependencies
:
sink_
job
=
task
.
get
(
'image'
)
if
sink_
job
:
messageRoute
.
sendmsg
(
sorted_tag
,
dag_run_id
,
data_list
,
sink_
job
,
message
)
if
from_
module
in
dependencies
:
sink_
module
=
task
.
get
(
'image'
)
if
sink_
module
:
messageRoute
.
sendmsg
(
sorted_tag
,
dag_run_id
,
data_list
,
sink_
module
,
message
)
@
classmethod
def
sendmsg
(
self
,
sorted_tag
,
dag_run_id
,
data_list
,
job
,
message
):
def
sendmsg
(
self
,
sorted_tag
,
dag_run_id
,
data_list
,
module
,
message
):
#执行解包操作
print
(
"sendmsg dag_run_id is "
+
dag_run_id
)
messageRoute
.
append_dagrunid
(
dag_run_id
)
...
...
@@ -94,18 +94,18 @@ class messageRoute():
if
not
data_list
:
print
(
"data_list 是 None 或空值"
)
#header中没有data_list参数时,下发消息也不带--header data_list
command
=
f
"scalebox task add --header sorted_tag=
{
sorted_tag
}
--header dag_run_id=
{
dag_run_id
}
--header repeatable=yes --
upsert --sink-job=
{
job
}
{
message
}
"
command
=
f
"scalebox task add --header sorted_tag=
{
sorted_tag
}
--header dag_run_id=
{
dag_run_id
}
--header repeatable=yes --
conflict-action=OVERWRITE --sink-module=
{
module
}
{
message
}
"
else
:
print
(
"data_list 有值"
)
# data_list 去掉空格
str_data_list
=
str
(
data_list
)
cleaned_data_list
=
str_data_list
.
replace
(
' '
,
''
)
command
=
f
"scalebox task add --header sorted_tag=
{
sorted_tag
}
--header dag_run_id=
{
dag_run_id
}
--header repeatable=yes --header data_list=
{
cleaned_data_list
}
--
upsert --sink-job=
{
job
}
{
message
}
"
command
=
f
"scalebox task add --header sorted_tag=
{
sorted_tag
}
--header dag_run_id=
{
dag_run_id
}
--header repeatable=yes --header data_list=
{
cleaned_data_list
}
--
conflict-action=OVERWRITE --sink-module=
{
module
}
{
message
}
"
print
(
"command : "
+
command
)
result
=
subprocess
.
run
(
command
,
shell
=
True
)
if
result
.
returncode
==
0
:
print
(
f
"send message
{
message
}
to
{
job
}
"
)
print
(
f
"send message
{
message
}
to
{
module
}
"
)
# dag_run_id记入/work/extra-attributes.txt
print
(
"命令执行成功"
)
return
result
.
returncode
...
...
L1/dockerfiles/redis-cli/Makefile
View file @
dc6bdfaa
...
...
@@ -9,8 +9,12 @@ dist:
push
:
docker push
$(IMAGE_NAME)
run-bash
:
docker run
-it
--entrypoint
bash
-e
PGHOST
=
192.168.25.
205
:5432
-e
GRPC_SERVER
=
192.168.25.
205
-v
${PWD}
/config:/config
$(IMAGE_NAME)
docker run
-it
--entrypoint
bash
-e
PGHOST
=
192.168.25.
18
:5432
-e
GRPC_SERVER
=
192.168.25.
18
-v
${PWD}
/config:/config
$(IMAGE_NAME)
run
:
docker run
-d
-e
PGHOST
=
192.168.25.205:5432
-e
GRPC_SERVER
=
192.168.25.205
-v
${PWD}
/config:/config
-v
/nfs/scalebox/redis-cli:/logs
$(IMAGE_NAME)
docker run
-d
\
--log-driver
json-file
\
--log-opt
max-size
=
2000m
\
--log-opt
max-file
=
5
\
-e
PGHOST
=
192.168.25.18:5432
-e
GRPC_SERVER
=
192.168.25.18
-v
${PWD}
/config:/config
-v
/nfs/scalebox/sc3/redis-cli:/logs
$(IMAGE_NAME)
down
:
docker stop
$(IMAGE_NAME)
L1/dockerfiles/redis-cli/run.sh
View file @
dc6bdfaa
...
...
@@ -43,7 +43,7 @@ do
msg
=
$(
extract_json_field
'del(.data_list)'
"
$msg
"
)
fi
echo
"msg is not empty"
$msg
#
echo "msg is not empty" $msg
# 提取dag_id 对应app_id
dag_id
=
$(
extract_json_field
'.dag'
"
$msg
"
)
#检索dag_id与app_id对应关系的配置文件appconfig.txt
...
...
@@ -62,9 +62,9 @@ do
# 日志轮转
rotate_logs
echo
"
$(
date
)
m
a
ssage :"
$allmsg
>>
"
$LOG_FILE
"
echo
"
$(
date
)
m
e
ssage :"
$allmsg
>>
"
$LOG_FILE
"
#send-message $obsid
job
_name
=
"message-router-csst"
module
_name
=
"message-router-csst"
priority
=
$(
echo
"
$msg
"
| jq
-r
'.priority'
)
if
[[
!
"
$priority
"
=
~ ^[1-9]
$
]]
;
then
...
...
@@ -75,20 +75,19 @@ do
echo
"priority : "
$priority
if
[
"
$has_data_list
"
=
"true"
]
;
then
strdatalist
=
$(
echo
"
$data_list
"
|
tr
-d
'[:space:]'
)
data_list
=
$(
echo
"
$data_list
"
|
tr
-d
'[:space:]'
)
strdatalist
=
$(
echo
"
$data_list
"
|
sed
's/"/\\"/g'
)
echo
"has data_list :"
$strdatalist
scalebox task add
--app-id
${
app_id
}
\
--header
sorted_tag
=
${
priority
}
\
--header
dag_run_id
=
${
dag_run_id
}
\
--header
repeatable
=
yes
\
--header
data_list
=
${
strdatalist
}
\
--upsert
--sink-job
${
job_name
}
${
message
}
strheaders
=
"{
\"
sorted_tag
\"
:
\"
${
priority
}
\"
,
\"
dag_run_id
\"
:
\"
${
dag_run_id
}
\"
,
\"
repeatable
\"
:
\"
yes
\"
,
\"
data_list
\"
:
\"
${
strdatalist
}
\"
}"
echo
"strheaders: "
$strheaders
scalebox task add
--app-id
${
app_id
}
--headers
"
${
strheaders
}
"
--conflict-action
=
OVERWRITE
--sink-module
${
module_name
}
${
message
}
else
scalebox task add
--app-id
${
app_id
}
\
--header
sorted_tag
=
${
priority
}
\
--header
dag_run_id
=
${
dag_run_id
}
\
--header
repeatable
=
yes
\
--
upsert
--sink-job
${
job
_name
}
${
message
}
--
conflict-action
=
OVERWRITE
--sink-module
${
module
_name
}
${
message
}
fi
code
=
$?
...
...
L1/dockerfiles/redis-cli/test.sh
View file @
dc6bdfaa
...
...
@@ -16,4 +16,6 @@
# redis-cli -h 192.168.25.205 -p 26379 -a 123456 rpush csst_data_list '{"dag_group":"default","dag_group_run":"f5b2f3d3cb64ec53a3f26c9c7502d255ff95439e","batch_id":"csci-1110-gn06-ylt01-130pmap","dag":"csst-msc-l1-mbi","dag_run":"2cf1a537395cb25b7c8d084f4b5560796ca21395","dataset":"csst-msc-c11-csci-ptc-v1","instrument":"MSC","obs_type":"WIDE","obs_group":"ksc-pzcs-sj1-gn06-ylt01","obs_id":"10100543249","detector":"18","filter":"","object":"","proposal_id":"","custom_id":"","priority":1,"data_list":["6904545f537c6b2ec572e504"],"extra_kwargs":{},"rerun":-1,"status_code":-1024,"queue_time":"2025-11-10T12:05:49.276827","pmapname":"csst_000130.pmap","ref_cat":"","created_time":"2025-11-10T04:05:49.188","n_file_expected":1,"n_file_found":1}'
redis-cli
-h
192.168.25.205
-p
26379
-a
123456 rpush csst_data_list
"{
\"
dag_group
\"
:
\"
default
\"
,
\"
dag_group_run
\"
:
\"
b449ea3ba240ad42052aae7f3e3a0deb5772ef0d
\"
,
\"
batch_id
\"
:
\"
csci-test-hstdm-stare-001
\"
,
\"
dag
\"
:
\"
csst-hstdm-l1
\"
,
\"
dag_run
\"
:
\"
b138a18ba5a5c123aeff8f695ec378cfed571603
\"
,
\"
dataset
\"
:
\"
csst-hstdm-c11-stare-sis1-v1
\"
,
\"
instrument
\"
:
\"
HSTDM
\"
,
\"
obs_type
\"
:
\"
STARE
\"
,
\"
obs_group
\"
:
\"
default
\"
,
\"
obs_id
\"
:
\"\"
,
\"
detector
\"
:
\"\"
,
\"
filter
\"
:
\"\"
,
\"
object
\"
:
\"\"
,
\"
proposal_id
\"
:
\"\"
,
\"
custom_id
\"
:
\"\"
,
\"
priority
\"
:1,
\"
data_list
\"
:[
\"
687b06060545d4e87daa80d3
\"
,
\"
687b060a016213e95e57e2db
\"
,
\"
687b060308ab2531b7424afa
\"
],
\"
extra_kwargs
\"
:{},
\"
rerun
\"
:-1,
\"
status_code
\"
:-1024,
\"
queue_time
\"
:
\"
2025-10-30T15:52:44.879820
\"
,
\"
pmapname
\"
:
\"\"
,
\"
ref_cat
\"
:
\"\"
,
\"
created_time
\"
:
\"
2025-10-30T07:52:44.616
\"
,
\"
n_file_expected
\"
:516,
\"
n_file_found
\"
:516}"
\ No newline at end of file
#redis-cli -h 192.168.25.205 -p 26379 -a 123456 rpush csst_data_list "{\"dag_group\":\"default\",\"dag_group_run\":\"b449ea3ba240ad42052aae7f3e3a0deb5772ef0d\",\"batch_id\":\"csci-test-hstdm-stare-001\",\"dag\":\"csst-hstdm-l1\",\"dag_run\":\"b138a18ba5a5c123aeff8f695ec378cfed571603\",\"dataset\":\"csst-hstdm-c11-stare-sis1-v1\",\"instrument\":\"HSTDM\",\"obs_type\":\"STARE\",\"obs_group\":\"default\",\"obs_id\":\"\",\"detector\":\"\",\"filter\":\"\",\"object\":\"\",\"proposal_id\":\"\",\"custom_id\":\"\",\"priority\":1,\"data_list\":[\"687b06060545d4e87daa80d3\",\"687b060a016213e95e57e2db\",\"687b060308ab2531b7424afa\"],\"extra_kwargs\":{},\"rerun\":-1,\"status_code\":-1024,\"queue_time\":\"2025-10-30T15:52:44.879820\",\"pmapname\":\"\",\"ref_cat\":\"\",\"created_time\":\"2025-10-30T07:52:44.616\",\"n_file_expected\":516,\"n_file_found\":516}"
redis-cli
-h
192.168.25.18
-p
26379
-a
csst__2025 rpush csst_data_list
"{"
dag_group
":"
default
","
dag_group_run
":"
d514c894c9a966666ad677969f416290ae5c1f6d
","
batch_id
":"
esc1-test-20260212
","
dag
":"
csst-cpic-l1
","
dag_run
":"
9cb8eeb0c4e8822e22cbda63aadcd00ae136c5be
","
dataset
":"
csst-cpic-c11-ppltest-v1
","
instrument
":"
CPIC
","
obs_type
":"
SCI
","
obs_group
":"
hip71681
","
obs_id
":"
40100003705
","
detector
":"
VIS
","
filter
":"","
object
":"","
proposal_id
":"","
custom_id
":"","
priority
":1,"
extra_kwargs
":{},"
rerun
":0,"
status_code
":-1024,"
queue_time
":"
2026-02-12T14:12:09.854312
","
create_time
":"
2026-02-12T14:12:09.854312
","
pmapname
":"","
ref_cat
":"","
created_time
":"
2026-02-12T06:12:09.756
","
n_file_expected
":1,"
n_file_found
":1}"
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment