class GenerateCSVJob extends AbstractQueuedJob (View source)

Iteratively exports GridField data to a CSV file on disk, in order to support large exports.

The generated file can be downloaded by the user through a CMS UI provided in {@link GridFieldQueuedExportButton}.

Simulates a request to the GridFieldQueuedExportButton controller to retrieve the GridField instance, from which the original data context can be derived (as an {@link SS_List instance). This is a necessary workaround due to the limitations on serialising GridField's data description logic. While a DataList is serialisable, other SS_List instances might not be. We'd also need to consider custom value transformations applied via GridField->customDataFields lambdas.

Relies on GridField being accessible in its original CMS controller context to the user who triggered the export.

Traits

Provides extensions to this object to integrate it with standard config API methods.

Properties

static private int $sync_sleep_seconds

Optionally define the number of seconds to wait after the job has finished before marking it as complete.

static private int $chunk_size
static private string $permission_mode
static private bool $ignore_umask

Methods

__construct()

Extensions can have a construct but don't have too.

string
getTitle()

No description

string
getSignature()

No description

getJobType()

No description

int|null
getRunAsMemberID()

Specifies what user ID should be when running the job valid values: null - (default) - run the job as current user 0 - run the job without a user greater than zero - run the job as a specific user

setup()

Performs setup tasks the first time this job is run.

prepareForRestart()

Run when an already setup job is being restarted.

process()

Generate export fields for CSV.

jobFinished()

Method for determining whether the job is finished - you may override it if there's more to it than just this

afterComplete()

Called when the job is determined to be 'complete'

getJobData()

No description

setJobData(int $totalSteps, int $currentStep, bool $isComplete, stdClass $jobData, array $messages)

No description

array|null
getCustomConfig()

Gets custom config settings to use when running the job.

setCustomConfig(array $config)

Sets custom config settings to use when the job is run.

addMessage(string $message, string $severity = 'INFO')

No description

__set(mixed $name, mixed $value)

Convenience methods for setting and getting job data

mixed
__get(mixed $name)

Retrieve some job data

static Config_ForClass
config()

Get a configuration accessor for this class. Short hand for Config::inst()->get($this->class, .....).

mixed
uninherited(string $name)

Gets the uninherited value for the given config option

setGridField(GridField $gridField)

No description

setSession(array $session)

No description

setColumns($columns)

No description

setSeparator($seperator)

No description

setIncludeHeader($includeHeader)

No description

Details

__construct()

Extensions can have a construct but don't have too.

Without a construct, it's impossible to create a job in the CMS

string getTitle()

Return Value

string

string getSignature()

Return Value

string

getJobType()

int|null getRunAsMemberID()

Specifies what user ID should be when running the job valid values: null - (default) - run the job as current user 0 - run the job without a user greater than zero - run the job as a specific user

This is useful in situations like:

  • a job needs to always run without a user (like a static cache job)
  • a job needs to run as a specific user (for example data migration job)

Note that this value can be overridden in the see QueuedJobService::queueJob()

Return Value

int|null

setup()

Performs setup tasks the first time this job is run.

This is only executed once for every job. If you want to run something on every job restart, use the {@link prepareForRestart} method.

prepareForRestart()

Run when an already setup job is being restarted.

process()

Generate export fields for CSV.

jobFinished()

Method for determining whether the job is finished - you may override it if there's more to it than just this

afterComplete()

Called when the job is determined to be 'complete'

setJobData(int $totalSteps, int $currentStep, bool $isComplete, stdClass $jobData, array $messages)

Parameters

int $totalSteps
int $currentStep
bool $isComplete
stdClass $jobData
array $messages

array|null getCustomConfig()

Gets custom config settings to use when running the job.

Return Value

array|null

setCustomConfig(array $config)

Sets custom config settings to use when the job is run.

Parameters

array $config

addMessage(string $message, string $severity = 'INFO')

Parameters

string $message
string $severity

__set(mixed $name, mixed $value)

Convenience methods for setting and getting job data

Parameters

mixed $name
mixed $value

mixed __get(mixed $name)

Retrieve some job data

Parameters

mixed $name

Return Value

mixed

static Config_ForClass config()

Get a configuration accessor for this class. Short hand for Config::inst()->get($this->class, .....).

Return Value

Config_ForClass

mixed uninherited(string $name)

Gets the uninherited value for the given config option

Parameters

string $name

Return Value

mixed

setGridField(GridField $gridField)

Parameters

GridField $gridField

setSession(array $session)

Parameters

array $session

setColumns($columns)

Parameters

$columns

setSeparator($seperator)

Parameters

$seperator

setIncludeHeader($includeHeader)

Parameters

$includeHeader