This commit is contained in:
Dmitry Zuikov 2024-09-19 07:22:19 +03:00
parent d3bb9b31e2
commit deb0673d8b
3 changed files with 17 additions and 6 deletions

View File

@ -467,13 +467,18 @@ refchanExport opts = do
gk0 <- loadGroupKey gk0 <- loadGroupKey
-- TODO: this-may-cause-to-tx-flood
-- сделать какой-то период релакса,
-- что ли
now <- liftIO $ getPOSIXTime <&> round
withState do withState do
what <- select_ @_ @FixmeExported [qc| what <- select @FixmeExported [qc|
select distinct o,w,k,cast (v as text) select distinct o,?,k,cast (v as text)
from object obj from object obj
where not exists (select null from scanned where hash = obj.nonce) where not exists (select null from scanned where hash = obj.nonce)
order by o, k, v, w order by o, k, v, w
|] |] (Only now)
let chu = chunksOf 10000 what let chu = chunksOf 10000 what
@ -578,7 +583,10 @@ refchanImport = do
tq <- newTQueueIO tq <- newTQueueIO
let goodToGo x = do ignCached <- asks fixmeEnvFlags >>= readTVarIO <&> HS.member FixmeIgnoreCached
let goodToGo x | ignCached = pure True
| otherwise = do
here <- selectIsAlreadyScanned x here <- selectIsAlreadyScanned x
pure $ not here pure $ not here
@ -605,7 +613,7 @@ refchanImport = do
scanned <- lift $ selectIsAlreadyScanned href scanned <- lift $ selectIsAlreadyScanned href
unless scanned do when (not scanned || ignCached) do
-- check if metadata tx -- check if metadata tx
meta <- runExceptT (extractMetaData @'HBS2Basic (const $ pure Nothing) sto href) meta <- runExceptT (extractMetaData @'HBS2Basic (const $ pure Nothing) sto href)

View File

@ -404,7 +404,7 @@ insertFixme fme = do
when excluded.w > object.w and (excluded.v <> object.v) then excluded.w when excluded.w > object.w and (excluded.v <> object.v) then excluded.w
else object.w else object.w
end, end,
nonce = case when excluded.w > object.w and (excluded.v <> object.v) then null nonce = case when excluded.w > object.w and (excluded.v <> object.v) then excluded.nonce
else object.nonce else object.nonce
end end
|] |]

View File

@ -267,6 +267,9 @@ refChanUpdateProto self pc adapter msg = do
guard =<< lift (refChanSubscribed adapter (getRefChanId msg)) guard =<< lift (refChanSubscribed adapter (getRefChanId msg))
let h0 = hashObject @HbSync (serialise msg) let h0 = hashObject @HbSync (serialise msg)
debug $ "RefchanUpdate: ALREADY" <+> pretty h0
guard =<< liftIO (hasBlock sto h0 <&> isNothing) guard =<< liftIO (hasBlock sto h0 <&> isNothing)
case msg of case msg of