- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
你好!
所以我在为 Laravel 调度设置 cron 作业时遇到了这个恼人的问题。为了理解这个问题,这里是项目架构:
我们希望自动化一些任务,因此我们创建了 3 个命令,并将它们收集在时间表中以便每天运行它们,kernel.php
如下所示:
protected $commands = [
'App\Console\Commands\IncompleteAccount',
'App\Console\Commands\TirageSoon',
'App\Console\Commands\WinzExpiration',
];
protected function schedule(Schedule $schedule)
{
$schedule->command('incompleteaccount:run')->everyFiveMinutes()->sendOutputTo(storage_path('logs/cron.log'));
$schedule->command('tiragesoon:run')->everyFiveMinutes()->sendOutputTo(storage_path('logs/cron.log'));
$schedule->command('winzExpire:run')->everyFiveMinutes()->sendOutputTo(storage_path('logs/cron.log'));
}
我们的 crontab 看起来像:
* * * * * php /var/www/artisan schedule:run >> /var/www/storage/logs/cron.log 2>&1
在日志文件中我们得到:
[Illuminate\Database\QueryException]
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known (SQL: select * from `booking` where `created_at` > 2017-08-27 16:08:50)
[Doctrine\DBAL\Driver\PDOException]
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known
[PDOException]
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known
[PDOException]
PDO::__construct(): php_network_getaddresses: getaddrinfo failed: Name or service not known
No scheduled commands are ready to run.
No scheduled commands are ready to run.
No scheduled commands are ready to run.
No scheduled commands are ready to run.
最后 .env 文件如下所示:
APP_ENV=prod
APP_KEY=base64:gPDQqknmG9YSOMueb/Ii0xXWQvrzOPsVFVRHVIzXXD0=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://www.ourSite.com
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=ourDB
DB_USERNAME=homestead
DB_PASSWORD=secret
BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
此外,我可以从容器内部 ping 到 mysql,这是 docker compose 文件:
version: '2'
services:
volumes_source:
image: tianon/true
volumes:
- ${SRCDIR}:/var/www
- ${DATADIR}/data/uploads:/var/www/public/img/uploads
nginx:
image: nginx
volumes_from:
- volumes_source
volumes:
- ${SRCDIR}/dockers/etc/nginx/sites-enabled:/etc/nginx/sites-enabled
- ${SRCDIR}/dockers/etc/nginx/nginx.conf:/etc/nginx/nginx.conf
ports:
- "${HTTP_PORT}:80"
links:
- php:phpfpm
wait:
image: aanand/wait
links:
- mysql:mysql
### Workspace Utilities Container ###########################
php:
build: dockers/winsu
volumes_from:
- volumes_source
command: php-fpm7 -F
working_dir: /var/www
environment:
CONFIG_ENV: ${CONFIG_ENV}
entrypoint: /var/www/dockers/winsu/run.sh
volumes:
- ${SRCDIR}/dockers/winsu/crontab:/crontab.file
links:
- mysql:mysql
- wait:wait
### MySQL Container #########################################
mysql:
image: mysql
volumes_from:
- volumes_data
environment:
MYSQL_DATABASE: winsu
MYSQL_USER: homestead
MYSQL_PASSWORD: root
MYSQL_ROOT_PASSWORD: root
### Databases Data Container ################################
volumes_data:
image: tianon/true
volumes:
- ${DATADIR}/data/mysql:/var/lib/mysql
- ${DATADIR}/data/storage:/var/www/storage
到目前为止,这个问题已经困扰了三天了!如果您能提供帮助,我将不胜感激! 我已经看到了类似的问题,但没有任何效果!提前致谢:)
最佳答案
您的问题似乎与未拾取环境变量有关。当您在 cron 中运行命令时,有两件事是不同的
所以将你的命令更改为
* * * * * cd /var/www && /var/www/artisan schedule:run ...
并使用命令前的 X=Y 格式定义任何其他所需的变量
* * * * * cd /var/www && X=Y Z=A /var/www/artisan schedule:run ...
关于mysql - Laravel Cron php_network_getaddresses : getaddrinfo failed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46079692/
我目前正在升级我们的软件以支持 ipv6,同时我正在将主机名/ip 字段扩展到最大主机名大小。在 sun 文档中,它似乎可以达到 1025(netdb.h:#define NI_MAXHOST 102
我正在使用 docker-compose 为开发人员提供技术栈 ROR、postgres、redis、mongo 的开发环境。 docker-compose build 运行成功,但是当我运行 doc
nc -zv cms-01 5061 失败: nc: getaddrinfo: 没有与主机名关联的地址 但是 ping/dig 工作正常。用getent可以看到最不一样的地方: # getent ho
我正在测试一条错误路径,该路径要求我删除来自 getaddrinfo 的请求。我设置了 2 个虚拟机: RHEL 7.9 Ubuntu 20 代码在两台机器上是相同的,只是为 test.com 调用
当我调用 getaddrinfo与 AF_UNSPEC ,理论上它可以返回任何它喜欢的地址族:AF_INET , AF_INET6 ,也许是 AppleTalk、蓝牙、datalink、netlink
我花了几个小时试图找出我的问题,只是在我写问题的时候找到了解决方案(当你需要正式化你的问题并解释它时,它总是有帮助的)。我发布它,希望它可以帮助某人。 使用 getaddrinfo,如果我尝试将套接字
我尝试通过给 getaddrinfo 赋予 http(s) 前缀来使用它,但它无法正确查找主机。我该如何解决这个问题。我要查 https://www.google.com但 gai_strerror(
我想在我的 header 中定义一个端口号(例如 #define port 9191 )并使用它来调用 getaddrinfo() 。但我收到错误,因为参数服务是 char const* 。如何使用#
我对 getaddrinfo() 的行为有疑问,这似乎取决于服务参数的指定方式。将服务指定为名称会导致 getaddrinfo() 使用 getservbyname() 来查询/etc/service
我有一个程序(用 C 语言编写),它使用 getaddrinfo() ,它的第一个参数是我希望它获取地址信息的主机名,假设它是“域”。在同一台计算机上的 /etc/hosts 文件中,我可以看到“do
int print_socket_info(int sock_fd, struct sockaddr_in *sin, short protocol){ char dbg[INET_ADDRS
这个问题已经存在: Login and Registration in Android with PHP, MySQL and SQLite 已关闭 7 年前。 我正在尝试连接到我的 mysql wa
我想连接sql数据库。我究竟做错了什么?请帮忙 常量.php 连接.php 最佳答案 首先,您的 constants.php 文件似乎在开始的 PHP 标记中有错字。您应该按如下方式更新文件:
我目前正在尝试编写自己的 HTTP 代理。我的代码可以正常工作,但我尝试使用 ApacheBench 对其进行压力测试,发现时不时地收到如下消息: “getaddrinfo:提供了节点名或服务名,或者
我正在使用 getaddrinfo() API 来解析跨平台 C++ 应用程序中的 DNS 查询。我需要知道 getaddrinfo() 在不同平台上的时间成本?谁能帮我解决这个问题? 最佳答案 这个
我有一个使用套接字的程序。在客户端,我通过 getaddrinfo 获取必要的信息,然后将结果传递给连接函数。事情是,它在不同的环境中工作不同。在获取 addrinfo 结构并将其传递给 connec
我有一个网络地址,例如 - 192.168.74.0/24。尝试使用 getaddrinfo 获取网络地址转换似乎不起作用。这里的名称是 192.168.74.0/24。 getaddrindo 的返
所以我花了一段时间才弄明白,因为“段错误”没有显示任何代码行,但显然这会导致我的程序出现段错误: if (getaddrinfo(options.servername, (char *)options
我遇到了一个奇怪的问题。我有这个 Python 应用程序,当我尝试在应用程序中打开 url 时,例如 urllib2.urlopen("http://google.com", None) 我收到以下错
我在 LAN 中用于某些套接字通信应用程序的目标机器具有用于 IPv4 的 192.168.98.91。 当我尝试使用 getaddrinfo() 解析 IP 地址时,它返回 127.0.0.1 如何
我是一名优秀的程序员,十分优秀!