小编Ark*_*ulG的帖子

Elastic Beanstalk:我如何仅在工作层上运行ebextension命令?

我有一个弹性beanstalk应用程序,它同时使用Web层和工作层.通过SQS将作业从Web层卸载到工作层,以使面向Web的服务器保持快速.两种环境都使用完全相同的代码库,并在其下使用RDS实例.

我需要在工作层的领导服务器上运行一个cron作业.我创建了一个.ebextensions文件夹,其中包含一个调用crontab它的文件(它是一个Laravel Web应用程序):

* * * * * root php /var/www/html/artisan do:something:with:database
Run Code Online (Sandbox Code Playgroud)

然后,我创建了一个名为的文件01cronjobs.config,它更新了root下的环境crontab,如下所示:

container_commands:
  01_remove_old_cron_jobs:
  command: "crontab -r || exit 0"
  02_cronjobs:
  command: "cat .ebextensions/crontab | crontab"
  leader_only: true
Run Code Online (Sandbox Code Playgroud)

.. 都好.现在,我想使用该eb deploy命令将其部署到EB .但是,我只希望工作层承担cron作业,因为我们只能有一台服务器在整个组中运行crons.

有没有办法告诉ebextensions配置文件在工作层上运行config命令?worker_only: true这里的东西会很棒,但它似乎并不存在.

任何人都可以提供一些有关如何实现这一目标的见解吗?谢谢.

worker amazon-web-services amazon-elastic-beanstalk

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

为什么Laravel的Response :: json如果从另一个函数调用则返回空白?

我正在使用Laravel构建API.我想将数据传递给基本控制器中的函数,并从那里通过Response :: json()提供JSON(原因是响应方法执行基准测试和日志记录等)

这有效:

<?php

public function show($id)
{
    $data = Member::find($id);

    return Response::json($data);
}
Run Code Online (Sandbox Code Playgroud)

这不是:

<?php

public function show($id)
{
    $data = Member::find($id);

    $this->respond($data);
}

private function respond($data)
{
    return Response::json($data);
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我为什么响应:json()不喜欢被弹出另一个函数?

如果我echo Response::json($data)而不是return它输出完整的响应,包括标题.

所有输入赞赏.谢谢.

php laravel

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