Files
exchange_monitor_sync/sync/__pycache__/account_sync.cpython-311.pyc

58 lines
9.4 KiB
Plaintext
Raw Normal View History

2025-12-04 15:40:19 +08:00
<EFBFBD>
2025-12-04 19:44:22 +08:00
q1i<31><00><00><><00>ddlmZddlmZddlmZmZmZmZddl Z ddl
2025-12-04 15:40:19 +08:00
Z
ddl m Z m Z ddl mZmZddlmZGd <09>d
e<01><00>ZdS) <0B>)<01>BaseSync<6E>)<01>logger)<04>List<73>Dict<63>Any<6E>SetN)<02>datetime<6D> timedelta)<02>text<78>and_)<01>
2025-12-04 19:44:22 +08:00
StrategyKXc<00><><00>eZdZdZdeeeffd<03>Zdeedefd<06>Z deedefd<07>Z
deedefd<08>Z d ee dee e ffd
<EFBFBD>Zd <0B>Zd S) <0A>AccountSyncBatchu账户信息批量同步器<E6ADA5>accountsc<00><00><>K<00> tjdt|<01><00><00>d<02><03><00>|j<00>|<01><00><00>d{V<00><03>}|stjd<04><00>dS|<00>|<02><00><00>d{V<00><03>}|r'tjdt|<02><00><00>d<06><03><00>dStjd<07><00>dS#t$r"}tjd|<04><00><02><00>Yd}~dSd}~wwxYw) u'批量同步所有账号的账户信息u%开始批量同步账户信息,共 u
2025-12-04 15:40:19 +08:00
个账号Nu!无账户信息数据需要同步u'账户信息批量同步完成: 处理 <20>
2025-12-04 19:44:22 +08:00
条记录u账户信息批量同步失败u 账户信息批量同步失败: )r<00>info<66>len<65> redis_client<6E>_collect_all_account_data<74>_sync_account_info_batch_to_db<64>error<6F> Exception)<05>selfr<00>all_account_data<74>success<73>es <20>8/root/project/exchange_monitor_sync/sync/account_sync.py<70>
sync_batchzAccountSyncBatch.sync_batch s:<00><00><00><00> A<01> <12>K<EFBFBD>Y<><03>H<EFBFBD> <0A> <0A>Y<>Y<>Y<> Z<> Z<> Z<>&*<2A>%6<>%P<>%P<>QY<51>%Z<>%Z<>Z<>Z<>Z<>Z<>Z<>Z<> <1C>$<24> <17><16> <0B>?<3F>@<40>@<40>@<40><16><06>!<21>?<3F>?<3F>@P<>Q<>Q<>Q<>Q<>Q<>Q<>Q<>Q<>G<EFBFBD><16> ?<3F><16> <0B>g<>c<EFBFBD>JZ<4A>F[<5B>F[<5B>g<>g<>g<>h<>h<>h<>h<>h<><16> <0C>=<3D>><3E>><3E>><3E>><3E>><3E><><18> A<01> A<01> A<01> <12>L<EFBFBD>?<3F>A<EFBFBD>?<3F>?<3F> @<40> @<40> @<40> @<40> @<40> @<40> @<40> @<40> @<40><><EFBFBD><EFBFBD><EFBFBD> A<01><><EFBFBD>s%<00>AB;<00>!AB;<00>%B;<00>;
C'<03>C"<03>"C'<03>account_data_list<73>returnc<00><00>K<00>|j<00><00><00>} |s |<02><00><00>dS|<02><00><00>5|<00>||<01><00>}|s|<00>||<01><00>}ddd<02><00>n #1swxYwY||<02><00><00>S#t $r6}tjd|<04><00><02><00>Yd}~|<02><00><00>dSd}~wwxYw#|<02><00><00>wxYw)u9批量同步账户信息到数据库最高效版本TNu,批量同步账户信息到数据库失败: F) <09>
db_manager<EFBFBD> get_session<6F>close<73>begin<69>_batch_upsert_account_info<66>_batch_orm_upsert_account_inforrr)rr!<00>sessionrrs rrz/AccountSyncBatch._sync_account_info_batch_to_db+sf<00><00><00><00><16>/<2F>-<2D>-<2D>/<2F>/<2F><07> <1C>$<24> <1C><1B> <14>M<EFBFBD>M<EFBFBD>O<EFBFBD>O<EFBFBD>O<EFBFBD>O<EFBFBD>O<EFBFBD><19><1D><1D><1F><1F> ^<01> ^<01><1E>9<>9<>'<27>CT<43>U<>U<><07><1E>^<01>"<22>A<>A<>'<27>K\<5C>]<5D>]<5D>G<EFBFBD>  ^<01> ^<01> ^<01> ^<01> ^<01> ^<01> ^<01> ^<01> ^<01> ^<01> ^<01><><EFBFBD><EFBFBD> ^<01> ^<01> ^<01> ^<01><1B> <14>M<EFBFBD>M<EFBFBD>O<EFBFBD>O<EFBFBD>O<EFBFBD>O<EFBFBD><4F> <19> <19> <19> <19> <12>L<EFBFBD>K<><01>K<>K<> L<> L<> L<><18>5<EFBFBD>5<EFBFBD>5<EFBFBD> <13>M<EFBFBD>M<EFBFBD>O<EFBFBD>O<EFBFBD>O<EFBFBD>O<EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD><EFBFBD>  <19><><EFBFBD><EFBFBD><EFBFBD> <14>M<EFBFBD>M<EFBFBD>O<EFBFBD>O<EFBFBD>O<EFBFBD>O<EFBFBD><4F><EFBFBD>sR<00>B&<00>B&<00>
2025-12-04 15:40:19 +08:00
/B<03>9 B&<00>B <07> B&<00> B <07> B&<00>&
C&<03>0C!<03>C)<00>!C&<03>&C)<00>)C?c<00><00> g}|D]b}d|d<00>d|d<00>d|d<00>d|d<00>d|d<00>d|d <00>d|d
2025-12-04 19:44:22 +08:00
<00>d|d <00>d <0C>}|<03>|<05><00><00>c|sd Sd<03>|<03><00>}d|<06>d<0F>}|<01>t|<07><00><00><00>t jdt |<02><00><00>d<11><03><00>d S#t$r"}t jd|<08><00><02><00>Yd}~dSd}~wwxYw)u.使用原生SQL批量插入/更新账户信息<E4BFA1>(<28>st_idz, <20>k_idz
, 'USDT', <20>balance<63>
withdrawal<EFBFBD>deposit<69>other<65>profit<69>time<6D>)Tz<54>
2025-12-04 15:40:19 +08:00
INSERT INTO deh_strategy_kx_new
(st_id, k_id, asset, balance, withdrawal, deposit, other, profit, time)
VALUES a(
ON DUPLICATE KEY UPDATE
balance = VALUES(balance),
withdrawal = VALUES(withdrawal),
deposit = VALUES(deposit),
other = VALUES(other),
profit = VALUES(profit),
up_time = NOW()
2025-12-04 19:44:22 +08:00
u#原生SQL批量更新账户信息: ru)原生SQL批量更新账户信息失败: NF) <09>append<6E>join<69>executer rrrrr) rr*r!<00> values_list<73>data<74>values<65>
values_str<EFBFBD>sqlrs rr(z+AccountSyncBatch._batch_upsert_account_infoBs<><00><00>% <19><1C>K<EFBFBD>)<29> +<2B> +<2B><04>J<01><04>W<EFBFBD> <0A>J<01>J<01><14>f<EFBFBD><1C>J<01>J<01><1B>I<EFBFBD><EFBFBD>J<01>J<01>*.<2E>|<7C>*<<3C>J<01>J<01>@D<>Y<EFBFBD><0F>J<01>J<01><1B>G<EFBFBD>}<7D>J<01>J<01>(,<2C>X<EFBFBD><0E>J<01>J<01>:><3E>v<EFBFBD>,<2C>J<01>J<01>J<01><17>
2025-12-04 15:40:19 +08:00
<1C>"<22>"<22>6<EFBFBD>*<2A>*<2A>*<2A>*<2A><1E> <1C><1B>t<EFBFBD><1D><19><19>;<3B>/<2F>/<2F>J<EFBFBD> <10><1F> <10> <10> <10>C<EFBFBD> <14>O<EFBFBD>O<EFBFBD>D<EFBFBD><13>I<EFBFBD>I<EFBFBD> &<26> &<26> &<26> <12>K<EFBFBD>`<60>c<EFBFBD>BS<42>>T<>>T<>`<60>`<60>`<60> a<> a<> a<><17>4<EFBFBD><34><18> <19> <19> <19> <12>L<EFBFBD>H<>Q<EFBFBD>H<>H<> I<> I<> I<><18>5<EFBFBD>5<EFBFBD>5<EFBFBD>5<EFBFBD>5<EFBFBD><35><EFBFBD><EFBFBD><EFBFBD> <19><><EFBFBD>s<00>A)C<00>-A"C<00>
C=<03>C8<03>8C=c<00><><00> i}|D]}|d|d|df}|||<<00>|<00>|t|<03><00><00><00><00><00><00>}g}g}|<03><00><00>D]r\}}||vrJ||} |d| _|d| _|d| _|d| _|d| _<00>S|<08> tdi|<04><01><01><00><00>s|r|<01> |<08><00>tj d t|<06><00><00>d
t|<08><00><00>d <0B><05><00>d S#t$r"}
tjd |
<EFBFBD><00><02><00>Yd}
~
dSd}
~
2025-12-04 19:44:22 +08:00
wwxYw)u(使用ORM批量插入/更新账户信息r.r-r4r/r0r1r2r3u$ORM批量更新账户信息: 更新 u 条,插入 u 条Tu#ORM批量更新账户信息失败: NF<4E>)<11>_batch_query_existing_records<64>list<73>keys<79>itemsr/r0r1r2r3r6r<00>add_allrrrrr) rr*r!<00>account_data_by_keyr:<00>key<65>existing_records<64> to_update<74> to_insert<72>recordrs rr)z/AccountSyncBatch._batch_orm_upsert_account_infoks<><00><00>$ <19>"$<24> <1F>)<29> 0<> 0<><04><1B>F<EFBFBD>|<7C>T<EFBFBD>'<27>]<5D>D<EFBFBD><16>L<EFBFBD>A<><03>+/<2F>#<23>C<EFBFBD>(<28>(<28> $<24>A<>A<>'<27>4<EFBFBD>Pc<50>Ph<50>Ph<50>Pj<50>Pj<50>Kk<4B>Kk<4B>l<>l<> <1C><1B>I<EFBFBD><1A>I<EFBFBD>0<>6<>6<>8<>8<> 9<> 9<> <09><03>T<EFBFBD><16>*<2A>*<2A>*<2A>-<2D>c<EFBFBD>2<>F<EFBFBD>%)<29>)<29>_<EFBFBD>F<EFBFBD>N<EFBFBD>(,<2C>\<5C>(:<3A>F<EFBFBD>%<25>%)<29>)<29>_<EFBFBD>F<EFBFBD>N<EFBFBD>#'<27><07>=<3D>F<EFBFBD>L<EFBFBD>$(<28><18>N<EFBFBD>F<EFBFBD>M<EFBFBD>M<EFBFBD><1E>$<24>$<24>Z<EFBFBD>%7<>%7<>$<24>%7<>%7<>8<>8<>8<>8<><19> +<2B><17><0F><0F> <09>*<2A>*<2A>*<2A> <12>K<EFBFBD>x<>s<EFBFBD>CS<43>?T<>?T<>x<>x<>dg<64>hq<68>dr<64>dr<64>x<>x<>x<> y<> y<> y<><17>4<EFBFBD><34><18> <19> <19> <19> <12>L<EFBFBD>B<>q<EFBFBD>B<>B<> C<> C<> C<><18>5<EFBFBD>5<EFBFBD>5<EFBFBD>5<EFBFBD>5<EFBFBD><35><EFBFBD><EFBFBD><EFBFBD> <19><><EFBFBD>s<00>D/D3<00>3
E<03>=E<03>ErBc <00>6<00>i} |s|Sg}|D]%\}}}|<04>d|<05>d|<06>d|<07>d<04><07><00><00>&|r<>d<05>|<04><00>}d|<08>d<07>} |<01>t| <09><00><00><00><00><00><00>}
2025-12-04 15:40:19 +08:00
|
D]d} | j| j| jf} t| j | j| j| j
| j | j | j | j| j| j<00><08>
<00>
|| <<00>en.#t $r!} t#jd | <0A><00><02><00>Yd
} ~ nd
2025-12-04 19:44:22 +08:00
} ~ wwxYw|S) u批量查询现有记录z(k_id = z AND st_id = z AND time = r5z OR zJ
2025-12-04 15:40:19 +08:00
SELECT * FROM deh_strategy_kx_new
WHERE z
)
2025-12-04 19:44:22 +08:00
<EFBFBD>idr-r.<00>assetr/r0r1r2r3r4u 批量查询现有记录失败: N)r6r7r8r <00>fetchallr.r-r4rrLrMr/r0r1r2r3rrr)rr*rBrG<00>
conditionsr.r-<00>time_val<61>conditions_strr=<00>results<74>rowrFrs rr@z.AccountSyncBatch._batch_query_existing_records<64>s<><00><00><1D><18>" A<01><17> (<28>'<27>'<27><1C>J<EFBFBD>)-<2D> `<01> `<01>%<25><04>e<EFBFBD>X<EFBFBD><1A>!<21>!<21>"^<5E>T<EFBFBD>"^<5E>"^<5E><05>"^<5E>"^<5E>S[<5B>"^<5E>"^<5E>"^<5E>_<>_<>_<>_<><19> <16>!'<27><1B><1B>Z<EFBFBD>!8<>!8<><0E><14>%<25><14><14><14><03>
2025-12-04 15:40:19 +08:00
"<22>/<2F>/<2F>$<24>s<EFBFBD>)<29>)<29>4<>4<>=<3D>=<3D>?<3F>?<3F><07>"<22> <16> <16>C<EFBFBD><1E>8<EFBFBD>S<EFBFBD>Y<EFBFBD><03><08>9<>C<EFBFBD>,6<><1E>6<EFBFBD>!<21>i<EFBFBD> <20>X<EFBFBD>!<21>i<EFBFBD> #<23> <0B>#&<26>><3E> #<23> <0B>!<21>i<EFBFBD>"<22>z<EFBFBD> <20>X<EFBFBD> -<16> -<16> -<16>$<24>S<EFBFBD>)<29>)<29><><EFBFBD><19> A<01> A<01> A<01> <12>L<EFBFBD>?<3F>A<EFBFBD>?<3F>?<3F> @<40> @<40> @<40> @<40> @<40> @<40> @<40> @<40><><EFBFBD><EFBFBD><EFBFBD> A<01><><EFBFBD><EFBFBD> <20>s<00>C+<00>C"C+<00>+
2025-12-04 19:44:22 +08:00
D<03>5D<03>Dc<00><00>hK<00>|<00><00><00>}|<00>|<01><00><00>d{V<00><03>dS)u兼容旧接口N)<02>get_accounts_from_redisr )rrs r<00>synczAccountSyncBatch.sync<6E>sA<00><00><00><00><17>/<2F>/<2F>1<>1<><08><12>o<EFBFBD>o<EFBFBD>h<EFBFBD>'<27>'<27>'<27>'<27>'<27>'<27>'<27>'<27>'<27>'<27>'<27>N)<10>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__r<00>strr r<00>boolrr(r)<00>tuplerr@rVr?rWrrr
s<><00><00><00><00><00><00>%<25>%<25>A<01><14>c<EFBFBD>4<EFBFBD>i<EFBFBD><1F>A<01>A<01>A<01>A<01><<1C>d<EFBFBD>4<EFBFBD>j<EFBFBD><1C>UY<55><1C><1C><1C><1C>.'<19>T<EFBFBD>$<24>Z<EFBFBD>'<19>TX<54>'<19>'<19>'<19>'<19>R&<19><14>d<EFBFBD><1A>&<19>X\<5C>&<19>&<19>&<19>&<19>P( <20>4<EFBFBD><05>;<3B>( <20>4<EFBFBD>PU<50>Wa<57>Pa<50>Kb<4B>( <20>( <20>( <20>( <20>T(<28>(<28>(<28>(<28>(rWr)<13> base_syncr<00>logurur<00>typingrrrr <00>jsonr4r
2025-12-04 15:40:19 +08:00
r <00>
2025-12-04 19:44:22 +08:00
sqlalchemyr r <00>models.orm_modelsrrr?rWr<00><module>res<><00><01><1F><1F><1F><1F><1F><1F><19><19><19><19><19><19>'<27>'<27>'<27>'<27>'<27>'<27>'<27>'<27>'<27>'<27>'<27>'<27> <0B> <0B> <0B> <0B> <0B> <0B> <0B> <0B>(<28>(<28>(<28>(<28>(<28>(<28>(<28>(<28>!<21>!<21>!<21>!<21>!<21>!<21>!<21>!<21>(<28>(<28>(<28>(<28>(<28>(<28>v(<28>v(<28>v(<28>v(<28>v(<28>x<EFBFBD>v(<28>v(<28>v(<28>v(<28>v(rW