# `GoodJob.Job.Instance`
[🔗](https://github.com/amkisko/good_job.ex/blob/v1.0.0/lib/good_job/job/instance.ex#L1)

Represents a job instance that can be directly executed.

Created by `MyJob.new(args)` and executed with `.perform`.

# `t`

```elixir
@type t() :: %GoodJob.Job.Instance{
  args: map() | list() | term(),
  job_module: module(),
  options: keyword()
}
```

# `new`

Creates a new job instance.

# `perform`

```elixir
@spec perform(t()) :: term()
```

Executes the job directly without enqueueing.

Similar to Rails ActiveJob's `job.perform`.

## Examples

    job = MyJob.new(%{data: "hello"})
    job.perform()

---

*Consult [api-reference.md](api-reference.md) for complete listing*
