Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
I
integrated-scheduling-v3
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张晓彤
integrated-scheduling-v3
Commits
4b27ce39
Commit
4b27ce39
authored
Nov 09, 2022
by
张晓彤
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
兜底策略改进
parent
6d3e78b0
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
85 additions
and
75 deletions
+85
-75
dispatcher.py
core/dispatcher.py
+3
-1
group.py
core/group.py
+80
-1
realtime_dispatch.py
realtime_dispatch.py
+1
-40
realtime_dispatch_test.py
realtime_dispatch_test.py
+1
-33
No files found.
core/dispatcher.py
View file @
4b27ce39
...
...
@@ -17,6 +17,7 @@ from core.schedule import PreSchedule
import
json
import
uuid
from
tables
import
session_mysql
,
session_postgre
from
core.group
import
truck_direct2redis
import
numpy
as
np
from
datetime
import
datetime
,
timedelta
...
...
@@ -320,9 +321,10 @@ class DispatchSubmission:
pass
except
Exception
as
es
:
self
.
logger
.
error
(
"调度结果写入异常"
)
self
.
logger
.
error
(
"调度结果写入异常
-执行直接写入策略
"
)
self
.
logger
.
error
(
f
"调度结果:{dispatch_seq}"
)
self
.
logger
.
error
(
es
)
truck_direct2redis
(
truck_id
)
def
group_dispatch_to_redis
(
self
,
group
:
Group
,
dispatch_plan_dict
):
"""
...
...
core/group.py
View file @
4b27ce39
...
...
@@ -13,6 +13,86 @@ import numpy as np
# from settings import get_logger
from
para_config
import
get_value
def
direct2redis
():
"""
直接读取数据库写入redis
:return: None
"""
# 清空数据库缓存
session_mysql
.
commit
()
session_mysql
.
flush
()
# 清空数据库缓存
session_postgre
.
commit
()
session_postgre
.
flush
()
try
:
truck_disp
=
{}
for
item
in
session_mysql
.
query
(
DispatchSetting
)
.
all
():
if
item
.
truck_id
not
in
truck_disp
:
record
=
{
"truckId"
:
item
.
truck_id
}
record
[
"dispatchId"
]
=
item
.
id
record
[
"exactorId"
]
=
item
.
exactor_id
record
[
"dumpId"
]
=
item
.
dump_id
record
[
"loadAreaId"
]
=
item
.
load_area_id
record
[
"unloadAreaId"
]
=
item
.
unload_area_id
record
[
"groupId"
]
=
item
.
group_id
record
[
"isdeleted"
]
=
False
record
[
"isTemp"
]
=
False
record
[
"haulFlag"
]
=
-
1
record
[
"groupName"
]
=
DispatchInfo
.
group_name
[
item
.
group_id
]
logger
.
info
(
"调度结果"
)
logger
.
info
(
record
)
redis5
.
set
(
item
.
truck_id
,
str
(
json
.
dumps
(
record
)))
except
Exception
as
es
:
logger
.
error
(
es
)
session_postgre
.
rollback
()
session_mysql
.
rollback
()
def
group_direct2redis
(
group
):
"""
根据分组车辆直接读取数据库写入redis
:return: None
"""
# 清空数据库缓存
session_mysql
.
commit
()
session_mysql
.
flush
()
# 清空数据库缓存
session_postgre
.
commit
()
session_postgre
.
flush
()
try
:
for
truck_id
in
group
.
group_trucks
:
truck_direct2redis
(
truck_id
)
except
Exception
as
ce
:
logger
.
error
(
ce
)
session_postgre
.
rollback
()
session_mysql
.
rollback
()
def
truck_direct2redis
(
truck_id
):
"""
根据车辆直接读取数据库写入redis
:return: None
"""
item
=
session_mysql
.
query
(
DispatchSetting
)
.
filter_by
(
truck_id
=
truck_id
,
isdeleted
=
0
,
)
.
first
()
if
item
is
None
:
raise
Exception
(
101
,
"无可用派车计划"
)
record
=
{
"truckId"
:
item
.
truck_id
,
"dispatchId"
:
item
.
id
,
"exactorId"
:
item
.
exactor_id
,
"dumpId"
:
item
.
dump_id
,
"loadAreaId"
:
item
.
load_area_id
,
"unloadAreaId"
:
item
.
unload_area_id
,
"groupId"
:
item
.
group_id
,
"isdeleted"
:
False
,
"isTemp"
:
False
,
"haulFlag"
:
-
1
,
"groupName"
:
DispatchInfo
.
group_name
[
item
.
group_id
]}
logger
.
info
(
f
'写入redis调度结果: {record}'
)
# 写入redis
redis5
.
set
(
item
.
truck_id
,
str
(
json
.
dumps
(
record
)))
class
CurrentTruck
:
""" class for the information of current dispatching truck.
...
...
@@ -245,7 +325,6 @@ class Group:
"""
pass
def
info_update
(
self
):
"""
update group info.
...
...
realtime_dispatch.py
View file @
4b27ce39
...
...
@@ -17,46 +17,7 @@ import time
from
core.dispatcher
import
Dispatcher
from
core.schedule
import
PreSchedule
from
data.dispatchInfo
import
DispatchInfo
def
direct2redis
():
"""
直接读取数据库写入redis
:return: None
"""
# 清空数据库缓存
session_mysql
.
commit
()
session_mysql
.
flush
()
# 清空数据库缓存
session_postgre
.
commit
()
session_postgre
.
flush
()
try
:
truck_disp
=
{}
for
item
in
session_mysql
.
query
(
DispatchSetting
)
.
all
():
if
item
.
truck_id
not
in
truck_disp
:
record
=
{
"truckId"
:
item
.
truck_id
}
record
[
"dispatchId"
]
=
item
.
id
record
[
"exactorId"
]
=
item
.
exactor_id
record
[
"dumpId"
]
=
item
.
dump_id
record
[
"loadAreaId"
]
=
item
.
load_area_id
record
[
"unloadAreaId"
]
=
item
.
unload_area_id
record
[
"groupId"
]
=
item
.
group_id
record
[
"isdeleted"
]
=
False
record
[
"isTemp"
]
=
False
record
[
"haulFlag"
]
=
-
1
record
[
"groupName"
]
=
DispatchInfo
.
group_name
[
item
.
group_id
]
logger
.
info
(
"调度结果"
)
logger
.
info
(
record
)
redis5
.
set
(
item
.
truck_id
,
str
(
json
.
dumps
(
record
)))
except
Exception
as
es
:
logger
.
error
(
es
)
session_postgre
.
rollback
()
session_mysql
.
rollback
()
from
core.group
import
direct2redis
def
process
(
dispatcher
):
...
...
realtime_dispatch_test.py
View file @
4b27ce39
...
...
@@ -17,39 +17,7 @@ import time
from
core.dispatcher
import
Dispatcher
from
core.schedule
import
PreSchedule
from
data.dispatchInfo
import
DispatchInfo
def
direct2redis
():
"""
直接读取数据库写入redis
:return: None
"""
# 清空数据库缓存
session_mysql
.
commit
()
session_mysql
.
flush
()
# 清空数据库缓存
session_postgre
.
commit
()
session_postgre
.
flush
()
truck_disp
=
{}
for
item
in
session_mysql
.
query
(
DispatchSetting
)
.
all
():
if
item
.
truck_id
not
in
truck_disp
:
record
=
{
"truckId"
:
item
.
truck_id
}
record
[
"id"
]
=
item
.
id
record
[
"exactorId"
]
=
item
.
exactor_id
record
[
"dumpId"
]
=
item
.
dump_id
record
[
"loadAreaId"
]
=
item
.
load_area_id
record
[
"unloadAreaId"
]
=
item
.
unload_area_id
record
[
"groupId"
]
=
item
.
group_id
record
[
"isdeleted"
]
=
False
record
[
"isTemp"
]
=
False
record
[
"haulFlag"
]
=
-
1
record
[
"groupName"
]
=
item
.
group_id
logger
.
info
(
"调度结果"
)
logger
.
info
(
record
)
redis5
.
set
(
item
.
truck_id
,
str
(
json
.
dumps
(
record
)))
from
core.group
import
direct2redis
def
process
(
dispatcher
):
...
...
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