标签: jobs

Laravel 中的队列 Dispatch 方法抛出错误

所以这是我的代码行

public function getVisitedCountriesCountAttribute()
{
    $this->dispatch(new CalculateTotalCountriesVisited($this));

    return $this->total_countries;
}
Run Code Online (Sandbox Code Playgroud)

这里的调度方法抛出一个错误说

Call to undefined method Illuminate\Database\Query\Builder::dispatch() (View: /Users/mereeva/sites/rdb-ws/resources/views/users/trips/status.blade.php)
Run Code Online (Sandbox Code Playgroud)

我似乎不明白这背后的原因是什么。我遵循了https://laravel.com/docs/5.1/queues中的所有步骤

任何帮助将不胜感激。谢谢

jobs laravel-5

2
推荐指数
1
解决办法
4990
查看次数

从 Rest api 运行 rundeck 作业

我希望允许任何人触发我在 Rundeck 中创建的作业。我无法从 API 文档中理解如何做到这一点。

任何人都知道,并且可以给出简单的例子(我对这个主题的理解很少甚至没有)?

我发现的是这样的: POST /api/1/job/[ID]/run

api rest jobs rundeck

2
推荐指数
1
解决办法
1万
查看次数

删除 cronjob 创建的所有 k8s pod

我有一个每 10 分钟运行一次的 cronjob。因此,每 10 分钟就会创建一个新的 Pod。一天后,我有很多已完成的 pod(不是作业,只有一个 cronjob 存在)。有没有办法自动摆脱它们?

cron jobs kubernetes

2
推荐指数
1
解决办法
5672
查看次数

如果 kubernetes 作业失败是否可以收到通知

我想知道如果 kubernetes 作业失败是否可以使用 yaml 配置发送通知?

例如,我有一个每天运行一次的 kubetnetes 作业。现在我一直在运行詹金斯作业来检查作业失败时发送通知。如果失败,我们是否有任何选项可以直接从 kubernetes 作业获取通知?它应该类似于我们在 job yaml 中添加的内容

jobs yaml kubernetes

2
推荐指数
1
解决办法
4514
查看次数

Laravel 作业虽然已完成,但仍处于“处理中”状态

我的 laravel 队列系统有问题。出于性能目的,我们使用 laravel 排队系统和 amazons SQS 进行更繁重的计算。这至少对于我们的大多数工作来说都有效。其中一些原始计算时间约为 25 秒,在“处理”状态下持续阻塞队列 6 分钟。

handle我们确实记录了作业的完整功能,并且输出在任何时候都是正确的。事实上,最后一条日志语句(函数结束)是在进入函数后 20 秒打印的。数据按预期计算,数据库已更新,但作业仍处于“处理中”状态。

在此输入图像描述

在我们故意在句柄函数末尾使作业崩溃后,计算的数据被完美存储,但显然队列也崩溃了。所以我想这一定是在处理函数之后发生的事情。也许有分配内存的东西?

队列的配置是默认的 sqs 驱动配置:

'sqs' => array(
    'driver' => 'sqs',
    'key'    => env('AWS_KEY', 'secret'),
    'secret' => env('AWS_SECRET', 'secret'),
    'queue'  => env('AWS_SQS_QUEUE', 'secret'),
    'region' => env('AWS_SQS_REGION', 'secret'),
),
Run Code Online (Sandbox Code Playgroud)

编辑:我发现它不仅是队列,而且当我作为命令执行作业时,会出现相同的行为:

我打印“完成”。作为命令中的最后一个语句,在打印该语句后,控制台会暂停几秒钟,然后再返回到控制台输入。

在此输入图像描述

当我注释掉最多查询的部分时,问题就消失了,就像我使用的查询越多,我必须等待控制台的时间就越多。

我希望你们中的任何人都知道导致此行为的原因以及我们如何解决它。

提前致谢

queue jobs laravel laravel-queue

2
推荐指数
1
解决办法
574
查看次数

Laravel Job:如何确保单个作业有很长的超时时间?

我的网络应用程序有大量作业,除了一个之外,所有作业都运行良好。

我需要这个特定的工作存活很长一段时间,整整一个小时,3600秒,如果超过时间就会失败,并且不要重试。

我试图在我的工作中设置这个属性

public $timeout = 3600;     
public $retryAfter = 4000;  
public $tries = 1;          
Run Code Online (Sandbox Code Playgroud)

我发现失败后这个特定的作业永远不会重试,而且没关系。

但超时和/或 retryAfter 会被忽略。几分钟后,作业将被标记为失败。

我究竟做错了什么?另外,请问 timeout 和 retryAFtrer 有什么区别?!?

有关我的背景的更多信息

我的队列由主管管理,如下所示:

[program:projectname-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/appdemo.projectname.com/artisan queue:work redis --sleep=3 --tries=3
autostart=true
autorestart=true
user=www-data
numprocs=1
redirect_stderr=true
stdout_logfile=/var/www/appdemo.projectname.com/storage/logs/laravel_worker.log
Run Code Online (Sandbox Code Playgroud)

这是 Lararavel 文档中建议的配置。

jobs laravel laravel-6

2
推荐指数
1
解决办法
8550
查看次数

尝试在 SQL Server 中创建或编辑作业步骤时出错“系统找不到指定的文件。”

我在用

Microsoft SQL Server 2019 (RTM) - 15.0.2000.5 (X64) 
Developer Edition (64-bit) on Windows Server 2016 Standard 10.0 <X64> (Build 14393: )
Run Code Online (Sandbox Code Playgroud)

我最近所做的事情是创建一个从路径动态恢复数据库的作业,运行它并禁用它。

之后,当我尝试添加新步骤时,出现此错误:

该系统找不到指定的文件

我在 SQL Server 日志中找不到任何错误。

我能够使用 T-SQL 创建作业并运行它们。

关于堆栈溢出的其他类似问题与我的问题无关。

为什么我突然收到这个错误?

这是从管理工作室复制的错误:

该系统找不到指定的文件。

计划地点:

在 Microsoft.SqlServer.Dts.Runtime.Application.get_LogProviderInfos()
在 Microsoft.DataTransformationServices.DTSExecUI.Controls.LoggingCtrl..ctor(IDTSExecViewManager treePanel)
在 Microsoft.SqlServer.Management.SqlManagerUI.DTSJobSubSystemDefinition.InitializeControls()
在 Microsoft.SqlServer。 Management.SqlManagerUI.DTSJobSubSystemDefinition..ctor(CDataContainer dataContainer,IMessageBoxProvider messageProvider)
在 Microsoft.SqlServer.Management.SqlManagerUI.JobStepSubSystems.CreateJobStepSubSystemSsis(AgentSubSystem agentSubSystem,CDataContainer dataContainer,JobStepData 数据,IMessageBoxProvider messageProvider)
在 Microsoft.SqlServer.Management.SqlManagerUI.JobStepSubSystems .CreateJobStepSubSystem(AgentSubSystem agentSubSystem,CDataContainer dataContainer,JobStepData数据,IMessageBoxProvider messageProvider,IServiceProvider serviceProvider)
在Microsoft.SqlServer.Management.SqlManagerUI.JobStepSubSystems ..ctor(CDataContainer dataContainer,JobStepData数据,IMessageBoxProvider messageProvider,IServiceProvider serviceProvider)
在 Microsoft.SqlServer.Management.SqlManagerUI.JobStepProperties.get_SubSystems() 在 Microsoft.SqlServer.Management.SqlManagerUI.JobStepProperties.FilterStepCombo(DatabaseEngineEdition engineEdition) 在 Microsoft.SqlServer.Management.SqlManagerUI.JobStepProperties.InitializeStepCombo() 在 Microsoft.SqlServer.Management .SqlManagerUI.JobStepProperties.InitializeData() 在 Microsoft.SqlServer.Management.SqlManagerUI.JobStepProperties.OnInitialization() 在 …

sql-server jobs

2
推荐指数
1
解决办法
1504
查看次数

使用Cloudinary和Active Storage时如何设置文件上传到特定文件夹?

我明白当使用以下语法直接上传到 Cloudinary 并将文件夹名称作为参数传递时,这是如何下降的。

Cloudinary::Uploader.upload("sample.jpg", :use_filename => true, :folder => "folder1/folder2")
Run Code Online (Sandbox Code Playgroud)

但是,我正在使用 ActiveStorage,当我以上述方式上传照片时,它不会附加到我的Post模型或以任何方式与我的应用程序关联。

我正在使用以下代码附加图像

post.send(:images).attach io: StringIO.new(new_data), filename: blob.filename.to_s, 
          content_type: 'image'
Run Code Online (Sandbox Code Playgroud)

它不接受指定文件夹的参数。我已尽力阅读 ActiveStorage 和 Cloudinary 文档,试图找到一种方法来完成这项工作,但是,我似乎无法弄清楚。

我已经看到设置自定义文件夹标头可能是使其工作的一种方法,但再次无法弄清楚如何为下面发生的上述代码设置自定义标头job

require 'tmpdir'
require 'fileutils'
require 'open-uri'
class ResizeImagesJob < ApplicationJob
  queue_as :default

  def perform(post)
    post.images.each do |image|
      blob = image.blob
      blob.open do |temp_file|
        path = temp_file.path
        pipeline = ImageProcessing::MiniMagick.source(path)
        .resize_to_limit(1200, 1200)
        .call(destination: path)
        new_data = File.binread(path)
        post.send(:images).attach io: StringIO.new(new_data), filename: blob.filename.to_s, 
                           content_type: 'image'
      end
      image.purge_later
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

上述工作正在做的是等到帖子创建后,然后调整照片大小并将照片重新附加到帖子以及删除原始照片。我采用这种方法是为了避免上传后直接在 Cloudinary …

jobs ruby-on-rails http-headers cloudinary rails-activestorage

2
推荐指数
1
解决办法
1783
查看次数

Ruby on Rails 中后台作业、rake 任务和 cronjobs 之间的区别?

我刚刚开始探索 Rails 中的 rake 任务和 cronjobs。我对它们之间的比较以及在哪种情况下对你来说是什么感到困惑。据我所知,后台作业是在应用程序运行时生成的,而任务是我们通过命令行运行的。假设我们正在使用 cronjob 创建用户记录,我们可以通过后台作业以及简单任务来完成此操作。始终感谢您分享知识!

ruby cron jobs ruby-on-rails scheduled-tasks

2
推荐指数
1
解决办法
1190
查看次数

从pentaho中的批处理文件中运行多个作业

我想问一下除了IDE之外是否有更有效的方法来运行多个转换(70个转换)?使用IDE方式可以,但是单击所有选项卡和隐藏选项卡也很麻烦.

我做的是我尝试使用pan.bat命令并将其放在一个bat文件中.bat文件看起来像这样:

cd <to dest of kitchen.bat>

pan.bat <mytransformation 1>
pan.bat <mytransformation 2>
pan.bat <mytransformation 3>
pan.bat <mytransformation 4>
Run Code Online (Sandbox Code Playgroud)

但它只适用于第一次转换然后退出.我做错了什么或者我有什么选择从脚本运行多重转换

jobs pentaho batch-file kettle

1
推荐指数
1
解决办法
3331
查看次数