Litium 8 Run a Job once?

I should say that the solution depends on what you actual want to do and I think it may be more a manually trigged job than a job that run once.

If we take a job that is executed only one (@Ericsj11 & @NilsN suggestion) will look like this and is executed during startup of the application. If the job have been executed before it will terminate itself.

using System.Threading;
using System.Threading.Tasks;
using Litium.Common;
using Litium.Runtime;

namespace Litium.Accelerator.Mvc
{
    [Autostart]
    public class SingleStartupJob : IAsyncAutostart
    {
        private const string _key = "single-startup-job";
        private readonly SettingService _settingService;

        public SingleStartupJob(
            SettingService settingService)
        {
            _settingService = settingService;
        }

        public async ValueTask StartAsync(CancellationToken cancellationToken)
        {
            if (_settingService.Get<bool?>(_key).GetValueOrDefault())
            {
                return;
            }

            try
            {
                await Execute(cancellationToken);
            }
            finally
            {
                _settingService.Set(_key, true);
            }
        }

        private ValueTask Execute(CancellationToken cancellationToken)
        {
            // Add the code that should be executed only once.
            return ValueTask.CompletedTask;
        }
    }
}

To be able to manage and run a job manually from back office you need to add a panel/settings page that will display the selectable jobs and make it possible to trigger them, the trigger function can be similar to this that @NilsN proposed.

I don’t think I get the content of this, can you explain more of what you trying to do there?