Summary:
Fixes T9494. This:
  - Removes all the random GC.x.y.z config.
  - Puts it all in one place that's locked and which you use `bin/garbage set-policy ...` to adjust.
  - Makes every TTL-based GC configurable.
  - Simplifies the code in the actual GCs.
Test Plan:
  - Ran `bin/garbage collect` to collect some garbage, until it stopped collecting.
  - Ran `bin/garbage set-policy ...` to shorten policy. Saw change in web UI. Ran `bin/garbage collect` again and saw it collect more garbage.
  - Set policy to indefinite and saw it not collect garabge.
  - Set policy to default and saw it reflected in web UI / `collect`.
  - Ran `bin/phd debug trigger` and saw all GCs fire with reasonable looking queries.
  - Read new docs.
{F857928}
Reviewers: chad
Reviewed By: chad
Maniphest Tasks: T9494
Differential Revision: https://secure.phabricator.com/D14219
		
	
		
			
				
	
	
		
			22 lines
		
	
	
		
			581 B
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
		
			581 B
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env php
 | 
						|
<?php
 | 
						|
 | 
						|
$root = dirname(dirname(dirname(__FILE__)));
 | 
						|
require_once $root.'/scripts/__init_script__.php';
 | 
						|
 | 
						|
$args = new PhutilArgumentParser($argv);
 | 
						|
$args->setTagline(pht('manage garbage colletors'));
 | 
						|
$args->setSynopsis(<<<EOSYNOPSIS
 | 
						|
**garbage** __command__ [__options__]
 | 
						|
    Manage garbage collectors.
 | 
						|
 | 
						|
EOSYNOPSIS
 | 
						|
  );
 | 
						|
$args->parseStandardArguments();
 | 
						|
 | 
						|
$workflows = id(new PhutilClassMapQuery())
 | 
						|
  ->setAncestorClass('PhabricatorGarbageCollectorManagementWorkflow')
 | 
						|
  ->execute();
 | 
						|
$workflows[] = new PhutilHelpArgumentWorkflow();
 | 
						|
$args->parseWorkflows($workflows);
 |