klaim reward BP harian (claim service V32-V34) + kill-switch DISTRIBUTE_ENABLED (V35) + Telegram dua kanal komunitas/internal (V30/V36) + placement web/scan/dist/claim != server2U
This commit is contained in:
1 parent
d3a0e768a0
commit
b1e6e93796
14 files changed
+878
-72
No files matched your search
@@ -0,0 +1,50 @@
|
||||
"""Jadwal klaim reward BP harian: jalankan `claim.step()` terus-menerus.
|
||||
|
||||
Menunggu hingga jendela klaim (dihitung `claim.py` dari `last_claim_time` +
|
||||
24 jam), lalu `step()` menangani resume fee → jadwal → poll `claimrewards`
|
||||
tiap `CLAIM_RETRY_SECONDS`. Loop tak pernah keluar — service dijaga hidup oleh
|
||||
restart_policy swarm; restart aman karena fee yang belum terkirim dilanjutkan
|
||||
dari `claim_runs` (V34). `TZ` env menentukan waktu lokal via `datetime.now()`
|
||||
(libc); image Dockerfile.claim sudah menyertakan tzdata.
|
||||
|
||||
Berbeda dgn scan: ⊥ ada klaim-awal saat start — klaim dgn key salah / jendela
|
||||
belum buka hanya dicatat lalu dicoba lagi (⊥ menabrak rule 24 jam).
|
||||
|
||||
Scheduler helper (`_wait_db`) sengaja diduplikasi dari `scan_loop.py` (bukan
|
||||
di-import) karena image Docker terpisah — `Dockerfile.claim` membawa
|
||||
`config.py db.py telegram.py distribute.py claim.py claim_loop.py` saja.
|
||||
"""
|
||||
|
||||
import time
|
||||
|
||||
import db
|
||||
import claim
|
||||
|
||||
|
||||
def _wait_db(timeout=120):
|
||||
"""Tunggu basis data siap (mariadb baru boot) sebelum loop."""
|
||||
start = time.monotonic()
|
||||
while time.monotonic() - start < timeout:
|
||||
try:
|
||||
db.queryone('SELECT 1')
|
||||
return
|
||||
except Exception:
|
||||
time.sleep(3)
|
||||
raise RuntimeError('basis data tak siap setelah menunggu')
|
||||
|
||||
|
||||
def main():
|
||||
from config import CLAIM_RETRY_SECONDS
|
||||
print(f'Jadwal klaim reward BP: poll tiap {CLAIM_RETRY_SECONDS}s '
|
||||
f'di jendela klaim (last_claim_time + 24 jam)', flush=True)
|
||||
_wait_db()
|
||||
while True:
|
||||
try:
|
||||
claim.step()
|
||||
except Exception as exc:
|
||||
print(f'[Error] Siklus klaim gagal: {exc}', flush=True)
|
||||
time.sleep(CLAIM_RETRY_SECONDS)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Reference in new issue
Block a user