当前位置: 首页 > 知识库问答 >
问题:

PHP代码每次运行EC2时都会关闭EC2

姚星腾
2023-03-14

我为PHP代码设置了一个Cron作业,使其每20分钟运行一次。但它每次都会杀死EC2T2Micro实例。以下是服务器日志。Pls帮助。

ip-172-31-42-52登录:[20332.164336]内存不足:杀死进程1241(java)得分174或牺牲子
[20332.192538]杀死进程1241(java)总计-VM:1473180KB,Anon-RSS:176012KB,文件-RSS:0KB
[23932.654770]内存不足:杀死进程1131(mysqld)得分71或牺牲子进程
[23932.690310]杀死进程1131(mysqld)总计-VM:908644KB,Anon-RSS:72004KB,文件-RSS:0KB
[39839.833448]内存不足:杀死进程4616(mysqld)得分68或牺牲子进程
[39839.845119]杀死进程4616(mysqld)总计-VM:908692KB,Anon-RSS:68816KB,文件-RSS:0KB
[39839.901289]内存不足:杀死进程4646(mysqld)得分69或牺牲子进程
[39839.937446]杀死进程4646(mysqld)总计-VM:908692KB,Anon-RSS:70392KB,文件-RSS:0KB
[63862.861894]内存不足:杀死进程6802(mysqld)得分66或牺牲子进程
[63862.875681]杀死进程6802(mysqld)总计-VM:908176KB,Anon-RSS:66820KB,文件-RSS:0KB
[134458.272131]END_REQUEST:I/O error,dev xvda,扇区627665
[134458.288710]END_REQUEST:I/O error,dev xvda,扇区627681
[134458.298582]END_REQUEST:I/O error,dev xvda,扇区301842]END_REQUEST:I/O错误,dev xvda,扇区5577401
[134458.302578]END_REQUEST:I/O错误,dev xvda,扇区5577425
[134458.302578]END_REQUEST:I/O错误,dev xvda,扇区5544705
[134458.302578]END_REQUEST:I/O错误,dev xvda,扇区1890769
[134458.302578]END_REQUEST:I/O错误,dev xvda,扇区1889537
[134458.302578]V xvda,扇区1889601
[134458.302578]END_REQUEST:I/O错误,dev xvda,扇区1889657

下面是PHP代码

<?php

$cf = dirname(__FILE__);
if ($cf) chdir($cf);

include_once('/var/www/html/clubberi.com/includes/incl.php');
$conn = ConnectToDatabese();
$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;

include_once('/var/www/html/clubberi.com/adm/cklog.php');

include_once('/var/www/html/clubberi.com/cls/trights.php');
global $rights;
$rights = new TRights();
$rights->conn = $conn;
$rights->Init();

$update_gallery="INSERT INTO GALLERY (NAZ,SCIMG,SCHEDULE,IUSER) VALUES ";

$sql="SELECT ID,NAZ,INSTA_LINK FROM PLACE WHERE INSTA_LINK<>'' AND GENRE=416";
$rs=$conn->Execute($sql) or die("Ошибка выполнения $sql");

set_time_limit(240);
    $i=0;
$link = "";
while(!$rs->EOF)
{
    $SCHEDULE = GetFieldFromSQL($conn,"SELECT ID FROM SCHEDULE WHERE DATE(ACTIONTIME)=CURDATE() AND PLACE=".$rs->fields['ID'] ,0);
    if(!$SCHEDULE){
        $MAX_SC_ID = GetFieldFromSQL($conn,"SELECT MAX(ID) FROM SCHEDULE" ,0);
        $curid = $MAX_SC_ID+1;
        $nos = NewObject($conn,'TSchedule',$curid);
        $nos->sf('NAZ','Some party - '.date('d.m.Y'));
        $nos->sf('PLACE',$rs->fields['ID']);
        $nos->sf('ACTIONTIME',date('d.m.Y'));
        $s = $nos->BaseInsert();
        $SCHEDULE = $nos->id;
    }
    $jsonurl = "https://api.instagram.com/v1/locations/".$rs->fields['INSTA_LINK']."/media/recent?client_id=421b46699e074734932d59771fcd1daf";
        #echo $jsonurl;
        $newUrl = htmlspecialchars_decode($jsonurl);
        $json = file_get_contents($newUrl, 0, null, null);
        #print_r("<br>".strlen($json));
        $json_output = json_decode($json, true);

    while(isset($json_output['data'][$i]['images']['standard_resolution']))
    {
            $CUR_IMG = GetFieldFromSQL($conn,"SELECT ID FROM GALLERY WHERE SCIMG=".sqlstr($json_output['data'][$i]['images']['standard_resolution']['url']) ,0);
            if(!$CUR_IMG)
            {
                $update_gallery.="('image-".$i."',".sqlstr(hsc($json_output['data'][$i]['images']['standard_resolution']['url'])).",".$SCHEDULE.",".sqlstr($json_output['data'][0]['caption']['from']['id'])."),";
                $i++;
            }
    }
    $rs->MoveNext();
}

if($i){
    $update_gallery = substr($update_gallery, 0, (strlen($update_gallery)-1));
    $rs=$conn->Execute($update_gallery) or die("Ошибка выполнения $update_gallery");
    echo $i."images";
}else echo "no image ";

?>

共有1个答案

田骁
2023-03-14

它有可能永远不会脱离“standard_resolution”while循环吗?如果$cur_img为TRUE,则$i永远不会递增。所以它会停留在那个循环中..永远!

 类似资料:
  • 我有一个使用SpringLDAP 1.3.1的应用程序。它在启动时在Spring上下文中创建LdapTemplate,并将其传递给我的应用程序。我连接的LDAP字符串实际上是一个VIP设备,后面有多个Active Directory服务器。 该应用程序用于创建组层次结构,并分几个步骤进行。首先,它创建任何新组,然后删除任何删除的组,然后更新和更改组,最后更新任何新组或移动组的父级。 在最后一步中,

  • TypeError:未定义的类扩展值不是构造函数或对象处为null。(C:\Program Files\nodejs\NodeU modules\npm\node\U modules\socks proxy agent\dist\agent.js:114:44)位于模块_在对象处编译(节点:内部/模块/cjs/加载程序:1101:14)。模块_扩展。。模块处的js(节点:内部/模块/cjs/加载程

  • 我试图创建10个线程,每个线程运行100.000次。因此,我做了一个循环,循环每一个线程。它应该每次递增静态x+1。

  • 问题内容: 这些方法之间有什么区别,哪种更好?到现在为止,我的代码如下: 但是在运行上述代码时,记录并不总是被删除(精确地:id = 1永远不会被删除,而其他id总是被删除)。我读到保持打开的会话可以稍微加快应用程序的速度- 这就是为什么我要共享会话对象。我的业务对象通过DI获取会话工厂: 问题答案: 根据我在Hibernate的经验,得出的结论是,最好的策略是使Hibernate会话寿命与单个事

  • 问题内容: 每次我尝试将任何内容推送到GitHub时,它都会询问我地址,然后它要求密码。有没有办法使它自动化? 我正在使用Linux Ubuntu。 问题答案: 您可以用来记住密码(通常,Gnome会自动为您运行密码)。 从现在开始,在您运行此程序的终端中,您的密码将被记住。 理想情况下,它会自动运行,因此在gnome中运行的所有shell都可以工作。查看Gnome Keyring 。

  • 我已经添加了一个actionlistener到一个jmenuproject,它调用一个类,该类读取一个excel文件并在一个jframe中打开一个jgraph。我还添加了另一个actionlistener到不同的jmenuproject,为相同的exel文件调用相同的类,但不同的excel表(不同的int参数)。然而,当我运行我的主框架时,我点击菜单项,我一次只能打开其中一个。我必须关上一个来打开