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
Hide 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
...
@@ -17,6 +17,7 @@ from core.schedule import PreSchedule
import
json
import
json
import
uuid
import
uuid
from
tables
import
session_mysql
,
session_postgre
from
tables
import
session_mysql
,
session_postgre
from
core.group
import
truck_direct2redis
import
numpy
as
np
import
numpy
as
np
from
datetime
import
datetime
,
timedelta
from
datetime
import
datetime
,
timedelta
...
@@ -320,9 +321,10 @@ class DispatchSubmission:
...
@@ -320,9 +321,10 @@ class DispatchSubmission:
pass
pass
except
Exception
as
es
:
except
Exception
as
es
:
self
.
logger
.
error
(
"调度结果写入异常"
)
self
.
logger
.
error
(
"调度结果写入异常
-执行直接写入策略
"
)
self
.
logger
.
error
(
f
"调度结果:{dispatch_seq}"
)
self
.
logger
.
error
(
f
"调度结果:{dispatch_seq}"
)
self
.
logger
.
error
(
es
)
self
.
logger
.
error
(
es
)
truck_direct2redis
(
truck_id
)
def
group_dispatch_to_redis
(
self
,
group
:
Group
,
dispatch_plan_dict
):
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
...
@@ -13,6 +13,86 @@ import numpy as np
# from settings import get_logger
# from settings import get_logger
from
para_config
import
get_value
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
CurrentTruck
:
""" class for the information of current dispatching truck.
""" class for the information of current dispatching truck.
...
@@ -245,7 +325,6 @@ class Group:
...
@@ -245,7 +325,6 @@ class Group:
"""
"""
pass
pass
def
info_update
(
self
):
def
info_update
(
self
):
"""
"""
update group info.
update group info.
...
...
realtime_dispatch.py
View file @
4b27ce39
...
@@ -17,46 +17,7 @@ import time
...
@@ -17,46 +17,7 @@ import time
from
core.dispatcher
import
Dispatcher
from
core.dispatcher
import
Dispatcher
from
core.schedule
import
PreSchedule
from
core.schedule
import
PreSchedule
from
data.dispatchInfo
import
DispatchInfo
from
data.dispatchInfo
import
DispatchInfo
from
core.group
import
direct2redis
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
process
(
dispatcher
):
def
process
(
dispatcher
):
...
...
realtime_dispatch_test.py
View file @
4b27ce39
...
@@ -17,39 +17,7 @@ import time
...
@@ -17,39 +17,7 @@ import time
from
core.dispatcher
import
Dispatcher
from
core.dispatcher
import
Dispatcher
from
core.schedule
import
PreSchedule
from
core.schedule
import
PreSchedule
from
data.dispatchInfo
import
DispatchInfo
from
data.dispatchInfo
import
DispatchInfo
from
core.group
import
direct2redis
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
)))
def
process
(
dispatcher
):
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