Page MenuHomePhabricator

Execute Maniphest batch edits in the background with a web UI progress bar
ClosedPublic

Authored by epriestley on Jun 22 2015, 5:55 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Apr 12, 8:20 PM
Unknown Object (File)
Tue, Apr 9, 4:13 PM
Unknown Object (File)
Mon, Apr 1, 11:24 PM
Unknown Object (File)
Sun, Mar 31, 2:31 PM
Unknown Object (File)
Mon, Mar 25, 1:56 PM
Unknown Object (File)
Feb 22 2024, 6:42 AM
Unknown Object (File)
Feb 22 2024, 6:42 AM
Unknown Object (File)
Feb 14 2024, 12:06 PM
Subscribers
Tokens
"Baby Tequila" token, awarded by btrahan.

Details

Summary

Ref T8637. This does nothing interesting, just has empty scaffolding for a bulk job queue.

Basic idea is that when you do something like a batch edit in Maniphest, we:

  • Create a BulkJob with all the details.
  • Queue a worker to start the job.
  • Send you to a progress bar page for the job.

In the background:

  • The "start job" worker creates a ton of Task objects, then queues worker tasks to do the work.

In the foreground:

  • Fancy ajax animates the progress bar and it goes wooosh.

In general:

  • Big jobs actually work.
  • Jobs get logged.
  • You can monitor jobs.
  • Terrible junk like T8637 should be much harder to write and much easier to catch and diagnose.
Test Plan

No interesting code/beahavior yet. Clean storage adjust.

Screen Shot 2015-06-22 at 10.53.37 AM.png (1×1 px, 130 KB)

Diff Detail

Repository
rP Phabricator
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

epriestley retitled this revision from to Add scaffolding for BulkJobs.
epriestley updated this object.
epriestley edited the test plan for this revision. (Show Details)
epriestley added a reviewer: btrahan.

Let me get this a little further before anyone looks at it.

  • Make it actually work.
  • Do Maniphest bulk editing via bulk task queue.

This is a bit rough around the edges but mostly reasonable now. Screenshots in a sec...

epriestley retitled this revision from Add scaffolding for BulkJobs to Execute Maniphest batch edits in the background with a web UI progress bar.Jun 23 2015, 1:39 PM
epriestley edited edge metadata.
epriestley updated this object.

Stuff I didn't implement here:

  • Canceling (and resuming?) jobs: technically fairly straightforward but doesn't seem like a critical v0 feature.
  • Emailing on job completion: jobs are generally pretty short-lived right now. I did add subscribers in anticipation of doing this eventually.
  • Quality-of-life UI: UI is OK, but pretty bare bones. Hypothetically, it would be nice for the UI to show what the edit is doing, have more details about result status, etc.
  • Modern bulk transactions: I didn't touch the actual code that builds transactions, which is a bit old/sketchy but works fine.
  • Nice progress bar: I just made it reload the page instead of doing something more high-budget here. Works fine.
This revision is now accepted and ready to land.Jun 23 2015, 5:24 PM
This revision was automatically updated to reflect the committed changes.