35 lines
806 B
Python
35 lines
806 B
Python
# standard imports
|
|
import logging
|
|
|
|
# external imports
|
|
import celery
|
|
from chainqueue.state import obsolete_by_cache
|
|
|
|
logg = logging.getLogger()
|
|
|
|
|
|
|
|
class StragglerFilter:
|
|
|
|
def __init__(self, chain_spec, queue='cic-eth'):
|
|
self.chain_spec = chain_spec
|
|
self.queue = queue
|
|
|
|
|
|
def filter(self, conn, block, tx, db_session=None):
|
|
logg.debug('tx {}'.format(tx))
|
|
obsolete_by_cache(self.chain_spec, tx.hash, False, session=db_session)
|
|
s_send = celery.signature(
|
|
'cic_eth.eth.gas.resend_with_higher_gas',
|
|
[
|
|
tx.hash,
|
|
self.chain_spec.asdict(),
|
|
],
|
|
queue=self.queue,
|
|
)
|
|
return s_send.apply_async()
|
|
|
|
|
|
def __str__(self):
|
|
return 'stragglerfilter'
|