• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

kobotoolbox / kpi / 26871739809 / 9
82%
master: 76%

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 03 Jun 2026 08:09AM UTC
Files 882
Run time 28s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

03 Jun 2026 08:00AM UTC coverage: 68.799% (+18.2%) from 50.648%
26871739809.9

push

github

web-flow
feat(bulkProcessing): implement background execution and polling for bulk actions DEV-1494 (#7080)

📣 Summary
Users can now successfully run bulk transcription and translation jobs
in the background, with real-time progress tracking and automatic
recovery if a network interruption occurs.

📖 Description
This PR implements the core background processing engine for
SubsequenceBulkAction using Celery. It ensures that large-scale audio
processing and translation tasks run asynchronously without blocking the
main API threads.

**Key Architectural Highlights:**
* **Job Orchestration:** Added `start_bulk_item_job` to safely delegate
individual submissions to the existing
`SubmissionSupplement.revise_data()` flow, ensuring complete
compatibility with existing NLP schemas.
* **Progress Polling:** Implemented `update_batch_status` utilizing
pessimistic database locking (`select_for_update(skip_locked=True)`) to
safely calculate and update the parent job's overall progress percentage
without triggering deadlocks.
* **Feature Auto-Provisioning:** Updated the creation serializer to
automatically provision the necessary `QuestionAdvancedFeature` (the
backend column) if it does not already exist for the requested language.
* **System Resilience:** Introduced a `resume_stuck_bulk_actions`
watchdog task (run every 5 minutes) to automatically resume polling for
jobs that experience worker restarts, timeouts, or pod terminations.
* **Async Guard Fix:** Updated the execution guard in `base.py` to
ensure long-running Google Cloud operations properly trigger the
downstream polling mechanism without getting trapped in an infinite
`in_progress` state.
* `BULK_ACTION_STATUS_POLL_INTERVAL` (Default: `30` seconds): Determines
how frequently the background task queries individual child submissions
to compute the overall parent batch progress percentage.
* `BULK_ACTION_STUCK_THRESHOLD` (Default: `300` seconds / 5 minutes):
The expiration window after which an active bulk action j... (continued)

6952 of 12190 branches covered (57.03%)

24870 of 36149 relevant lines covered (68.8%)

0.69 hits per line

Source Files on job 26871739809.9
  • Tree
  • List 882
  • Changed 319
  • Source Changed 0
  • Coverage Changed 319
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Build 26871739809
  • 817c3ed9 on github
  • Prev Job for on main (#26822786285.3)
  • Next Job for on main (#26875904941.4)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc