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

101 lines
16 KiB
Plaintext
Raw Normal View History

2025-12-04 15:40:19 +08:00
<EFBFBD>
<14>0i<30>9<00><00><><00>ddlmZddlmZddlmZmZmZmZddl Z ddl
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>
StrategyKXc <00><><00>eZdZdZdeeeffd<03>Zdeeefdeefd<05>Zdeeefdeeeeffd<06>Z dedeedeefd <09>Z
d
e d e dedeefd <0C>Z d edeedeee ffd<0F>Zdeedefd<11>Zdeedefd<12>Zdeedefd<13>Zdeedeeeffd<15>Zd<16>ZdS)<18>AccountSyncBatchu账户信息批量同步器<E6ADA5>accountsc<00><00><>K<00> tjdt|<01><00><00>d<02><03><00>dS#t $r"}tjd|<04><00><02><00>Yd}~dSd}~wwxYw) u'批量同步所有账号的账户信息u%开始批量同步账户信息,共 u
个账号Nu!无账户信息数据需要同步u'账户信息批量同步完成: 处理 <20>
条记录u账户信息批量同步失败u 账户信息批量同步失败: )r<00>info<66>len<65>_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<> <12>F<EFBFBD><46> <19> 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>%+<00>
A<03>A<03>A<03>returnc<00><00><>K<00>g} |<00>|<01><00>}g}|<03><00><00>D]0\}}|<00>||<06><00>}|<04>|<07><00><00>1t j|ddi<01><01>d{V<00><03>}|D],} t | t<00><00>r|<02>| <09><00><00>-tj
dt|<02><00><00>d<05><03><00>n.#t$r!}
tj d|
<EFBFBD><00><02><00>Yd}
~
nd}
~
wwxYw|S)u'收集所有账号的账户信息数据<E695B0>return_exceptionsTNu
收集到 u 条账户信息记录u 收集账户信息数据失败: )<0E>_group_accounts_by_exchange<67>items<6D>_collect_exchange_account_data<74>append<6E>asyncio<69>gather<65>
isinstance<EFBFBD>list<73>extendrrrrr) rrr<00>account_groups<70>tasks<6B> exchange_id<69> account_list<73>task<73>results<74>resultrs rrz*AccountSyncBatch._collect_all_account_data$sO<00><00><00><00><1D><18> A<01>!<21>=<3D>=<3D>h<EFBFBD>G<>G<>N<EFBFBD><17>E<EFBFBD>-;<3B>-A<>-A<>-C<>-C<> #<23> #<23>)<29> <0B>\<5C><1B>:<3A>:<3A>;<3B> <0C>U<>U<><04><15> <0C> <0C>T<EFBFBD>"<22>"<22>"<22>"<22>$<24>N<EFBFBD>E<EFBFBD>J<>T<EFBFBD>J<>J<>J<>J<>J<>J<>J<>J<>G<EFBFBD>!<21> 4<> 4<><06><1D>f<EFBFBD>d<EFBFBD>+<2B>+<2B>4<>$<24>+<2B>+<2B>F<EFBFBD>3<>3<>3<><33> <12>K<EFBFBD>R<>S<EFBFBD>)9<>%:<3A>%:<3A>R<>R<>R<> S<> S<> S<> S<><53><18> 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>CC<00>
C9<03>C4<03>4C9c<00><><00>i}|<01><00><00>D]@\}}|<04>d<01><00>}|r$||vrg||<||<00>|<04><00><00>A|S)u按交易所分组账号r.)r$<00>getr&)rr<00>groups<70>
account_id<EFBFBD> account_infor.s rr#z,AccountSyncBatch._group_accounts_by_exchange@st<00><00><13><06>(0<><0E><0E>(8<>(8<> 9<> 9<> $<24>J<EFBFBD> <0C>&<26>*<2A>*<2A>=<3D>9<>9<>K<EFBFBD><1A> 9<><1E>f<EFBFBD>,<2C>,<2C>*,<2C>F<EFBFBD>;<3B>'<27><16>{<7B>#<23>*<2A>*<2A><<3C>8<>8<>8<><38><15> <0A>r.r/c<00><00><>K<00>g} |D]_}t|d<00><00>}|<04>dd<03><00>}|<00>|||<01><00><00>d{V<00><03>}|<03>|<07><00><00>`t jd|<01>dt |<03><00><00>d<07><05><00>n1#t$r$}t jd|<01>d |<08><00><04><00>Yd}~nd}~wwxYw|S)
u*收集某个交易所的账户信息数据<E695B0>k_id<69>st_idrNu
交易所 u : 收集到 u 条账户信息u收集交易所 u 账户信息失败: ) <09>intr4<00>_get_account_info_from_redisr+r<00>debugrrr) rr.r/<00>account_data_listr7r:r;<00> account_datars rr%z/AccountSyncBatch._collect_exchange_account_dataKs<00><00><00><00><1E><19> S<01> ,<2C> 7<> 7<> <0C><1A><<3C><06>/<2F>0<>0<><04>$<24>(<28>(<28><17>!<21>4<>4<><05>&*<2A>%F<>%F<>t<EFBFBD>U<EFBFBD>T_<54>%`<60>%`<60>`<60>`<60>`<60>`<60>`<60>`<60> <0C>!<21>(<28>(<28><1C>6<>6<>6<>6<> <12>L<EFBFBD>g<>k<EFBFBD>g<>g<>s<EFBFBD>CT<43>?U<>?U<>g<>g<>g<> h<> h<> h<> h<><68><18> S<01> S<01> S<01> <12>L<EFBFBD>Q<>K<EFBFBD>Q<>Q<>a<EFBFBD>Q<>Q<> R<> R<> R<> R<> R<> R<> R<> R<><52><EFBFBD><EFBFBD><EFBFBD> S<01><><EFBFBD><EFBFBD>!<21> s<00>B
B<00>
B?<03>B:<03>:B?r:r;c
<00><00><>K<00> |<03>d|<01><00>}|jj<00>|<04><00>}|sgSddlm}|d}t j<00><00>}i} |<05><00><00>D<00>]6\}
} tj | <0B><00>} | <0C>
dd<06><00>} | <0C>
dd<06><00>}| r|dvr<01>Nt j | d <09><00>}||z
j |kr<01>r| | vr
d
d
d
d d <0C>| | <t| <0C>
d d<02><00><00><00>}|dkr|| | d<d| | d<n9|dkr| | dxx|z cc<n|dkr| | dxx|z cc<<00><>#tjtf$r%}t!jd|
<EFBFBD>d|<11><00><04><00>Yd}~<11><01>0d}~wwxYwg}t%| <09><00><00><00><00>}|<00>||<13><00>}|D]<5D>} | | }|ds|ddkr |ddkr<01>+|d}|d}|d}|<14>
| d
<EFBFBD><00>}||z
|z
|z
}t j | d <09><00>}t+|<0F><00><00><00><00>}|||||d
||d<17>}|<12>|<1C><00><00><>|S#t0$r&}t!jd|<01>d|<11><00><04><00>gcYd}~Sd}~wwxYw)u8从Redis获取账户信息数据批量优化版本z :balance:r)<01> SYNC_CONFIG<49> recent_days<79>lz_time<6D><00>lz_type)<03>
lz_balance<EFBFBD>deposit<69>
withdrawalz%Y-%m-%d<>F)<04>balancerHrI<00> has_balance<63> lz_amountrGrKTrLrHrIu解析Redis数据失败: z, error=N)r;r:rKrIrH<00>other<65>profit<69>timeu$获取Redis账户信息失败: k_id=)<1A> redis_client<6E>client<6E>hgetall<6C>config.settingsrBr
<00>nowr$<00>json<6F>loadsr4<00>strptime<6D>days<79>float<61>JSONDecodeError<6F>
ValueErrorrr><00>sorted<65>keys<79>_get_previous_balancesr<<00> timestampr&rr)rr:r;r.<00> redis_key<65> redis_fundsrBrC<00>today<61>
date_stats<EFBFBD>fund_key<65> fund_json<6F> fund_data<74>date_strrF<00>date_objrMrr?<00> sorted_dates<65>prev_balance_map<61>statsrKrHrI<00> prev_balancerO<00>time_timestampr@s rr=z-AccountSyncBatch._get_account_info_from_redis_s<><00><00><00><00>^ <16>&<26>7<>7<><14>7<>7<>I<EFBFBD><1E>+<2B>2<>:<3A>:<3A>9<EFBFBD>E<>E<>K<EFBFBD><1E> <1A><19> <09> 4<> 3<> 3<> 3<> 3<> 3<>%<25>m<EFBFBD>4<>K<EFBFBD><1C>L<EFBFBD>N<EFBFBD>N<EFBFBD>E<EFBFBD><1B>J<EFBFBD>(3<>'8<>'8<>':<3A>':<3A>" <1D>" <1D>#<23><08>)<29>!<1D> $<24>
<EFBFBD>9<EFBFBD> 5<> 5<>I<EFBFBD>(<28>}<7D>}<7D>Y<EFBFBD><02>;<3B>;<3B>H<EFBFBD>'<27>m<EFBFBD>m<EFBFBD>I<EFBFBD>r<EFBFBD>:<3A>:<3A>G<EFBFBD>#<23>!<21>w<EFBFBD>6]<5D>']<5D>']<5D> <20> (<28>0<><18>:<3A>F<>F<>H<EFBFBD><1D><08>(<28>.<2E><1B><<3C><<3C> <20><1F>z<EFBFBD>1<>1<>'*<2A>'*<2A>*-<2D>+0<> 0<1A>0<1A>
<EFBFBD>8<EFBFBD>,<2C>!&<26>i<EFBFBD>m<EFBFBD>m<EFBFBD>K<EFBFBD><11>&C<>&C<> D<> D<>I<EFBFBD><1E>,<2C>.<2E>.<2E>:C<>
<EFBFBD>8<EFBFBD>,<2C>Y<EFBFBD>7<>>B<>
<EFBFBD>8<EFBFBD>,<2C>]<5D>;<3B>;<3B> <20>I<EFBFBD>-<2D>-<2D>"<22>8<EFBFBD>,<2C>Y<EFBFBD>7<>7<>7<>9<EFBFBD>D<>7<>7<>7<>7<> <20>L<EFBFBD>0<>0<>"<22>8<EFBFBD>,<2C>\<5C>:<3A>:<3A>:<3A>i<EFBFBD>G<>:<3A>:<3A>:<3A><><EFBFBD><1C>,<2C>j<EFBFBD>9<><1D><1D><1D><1A>L<EFBFBD>!R<>X<EFBFBD>!R<>!R<>q<EFBFBD>!R<>!R<>S<>S<>S<><1C>H<EFBFBD>H<EFBFBD>H<EFBFBD>H<EFBFBD><48><EFBFBD><EFBFBD><EFBFBD><1D><><EFBFBD><EFBFBD>
!#<23> <1D>!<21>*<2A>/<2F>/<2F>"3<>"3<>4<>4<>L<EFBFBD> $<24>:<3A>:<3A>;<3B> <0C>U<>U<> <1C>(<28> 7<> 7<><08>"<22>8<EFBFBD>,<2C><05><1D>]<5D>+<2B><1D><05>i<EFBFBD>0@<40>A<EFBFBD>0E<30>0E<30>%<25>P\<5C>J]<5D>ab<61>Jb<4A>Jb<4A><1C><1F> <09>*<2A><07><1F> <09>*<2A><07>"<22><<3C>0<>
<EFBFBD> 0<>3<>3<>H<EFBFBD>c<EFBFBD>B<>B<> <0C> <20>7<EFBFBD>*<2A>Z<EFBFBD>7<>,<2C>F<><06>$<24>,<2C>X<EFBFBD>z<EFBFBD>B<>B<><08>!$<24>X<EFBFBD>%7<>%7<>%9<>%9<>!:<3A>!:<3A><0E>#<23> <20>&<26>",<2C>&<26> <20>$<24>*<2A> <12> <12> <0C>"<22>(<28>(<28><1C>6<>6<>6<>6<>$<24> $<24><><18> <16> <16> <16> <12>L<EFBFBD>Q<><04>Q<>Q<>a<EFBFBD>Q<>Q<> R<> R<> R<><15>I<EFBFBD>I<EFBFBD>I<EFBFBD>I<EFBFBD>I<EFBFBD>I<EFBFBD><49><EFBFBD><EFBFBD><EFBFBD> <16><><EFBFBD>sg<00>)J<00>=J<00>,AE<02>2J<00>3#E<02>J<00>BE<02>J<00>F<05>5F<05>J<00>F<05>C:J<00>
K<03>K<03>:K<03>Krbrjc<00>L<00>i}d}|D]<5D>}|r<>|<01><00><00>D]{\}} tj|<07><00>}|<08>d<02><00>|krA|<08>d<03><00>dkr(t |<08>dd<06><00><00><00>||<n<08>u#Y<00>yxYwnd||<|}<04><>|S)u获取前一天的余额NrDrFrGrMrrJ)r$rVrWr4rZ) rrbrjrk<00> prev_daterhrerfrgs rr_z'AccountSyncBatch._get_previous_balances<65>s<><00><00><1D><18><18> <09>$<24> !<21> !<21>H<EFBFBD><18> 1<>+6<>+<<3C>+<<3C>+><3E>+><3E>!<21>!<21>'<27>H<EFBFBD>i<EFBFBD>!<21>$(<28>J<EFBFBD>y<EFBFBD>$9<>$9<> <09>%<25>M<EFBFBD>M<EFBFBD>)<29>4<>4<> <09>A<>A<>%<25>M<EFBFBD>M<EFBFBD>)<29>4<>4<> <0C>D<>D<>9><3E>y<EFBFBD>}<7D>}<7D>[<5B>Z[<5B>?\<5C>?\<5C>9]<5D>9]<5D>,<2C>X<EFBFBD>6<>!<21>E<EFBFBD><45><EFBFBD>!<21> <20><08><><EFBFBD><EFBFBD><EFBFBD>-0<> <20><18>*<2A> <20>I<EFBFBD>I<EFBFBD><1F>s <00>A,B<04>Br?c<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<64>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>
/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
<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>(r;z, r:z
, 'USDT', rKrIrHrNrOrP<00>)Tz<54>
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()
u#原生SQL批量更新账户信息: ru)原生SQL批量更新账户信息失败: NF) r&<00>join<69>executer rrrrr) rrxr?<00> values_list<73>data<74>values<65>
values_str<EFBFBD>sqlrs rrvz+AccountSyncBatch._batch_upsert_account_info<66>s<><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>
<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}
~
wwxYw)u(使用ORM批量插入/更新账户信息r:r;rPrKrIrHrNrOu$ORM批量更新账户信息: 更新 u 条,插入 u 条Tu#ORM批量更新账户信息失败: NF<4E>)<11>_batch_query_existing_recordsr*r^r$rKrIrHrNrOr&r<00>add_allrrrrr) rrxr?<00>account_data_by_keyr<00>key<65>existing_records<64> to_update<74> to_insert<72>recordrs rrwz/AccountSyncBatch._batch_orm_upsert_account_infos<><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>Er^c <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>}
|
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
} ~ wwxYw|S) u批量查询现有记录z(k_id = z AND st_id = z AND time = r{z OR zJ
SELECT * FROM deh_strategy_kx_new
WHERE z
)
<EFBFBD>idr;r:<00>assetrKrIrHrNrOrPu 批量查询现有记录失败: N)r&r|r}r <00>fetchallr:r;rPrr<>r<>rKrIrHrNrOrrr)rrxr^r<><00>
conditionsr:r;<00>time_val<61>conditions_strr<72>r1<00>rowr<77>rs rr<>z.AccountSyncBatch._batch_query_existing_recordsAs<><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>
"<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>+
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.syncksA<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>'r8N)<17>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__r<00>strrrrr#r%r<r=rZr_<00>boolrrvrw<00>tuplerr<>r<>r<>r8rrr
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>. <20><04>S<EFBFBD>$<24>Y<EFBFBD><0F> <20>D<EFBFBD>QU<51>J<EFBFBD> <20> <20> <20> <20>8 <16>D<EFBFBD><13>d<EFBFBD><19>O<EFBFBD> <16><04>S<EFBFBD>RV<52>W[<5B>R\<5C>_<EFBFBD>H]<5D> <16> <16> <16> <16>!<21><03>!<21>SW<53>X\<5C>S]<5D>!<21>bf<62>gk<67>bl<62>!<21>!<21>!<21>!<21>(`<16>s<EFBFBD>`<16>3<EFBFBD>`<16>UX<55>`<16>]a<>bf<62>]g<>`<16>`<16>`<16>`<16>D <20>$<24> <20>d<EFBFBD>3<EFBFBD>i<EFBFBD> <20>TX<54>Y\<5C>^c<>Yc<59>Td<54> <20> <20> <20> <20>0<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>(r8r)<13> base_syncr<00>logurur<00>typingrrrr rVrPr
r <00>
sqlalchemyr r <00>models.orm_modelsrrr<>r8r<00><module>r<>s<><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>d(<28>d(<28>d(<28>d(<28>d(<28>x<EFBFBD>d(<28>d(<28>d(<28>d(<28>d(r8