あなたのOPは「これをどのように改善できますか」と尋ねたので、PHPを使いたければ言及していません。
CSVが大きい場合は、PHPファイルと同じことを行うbashファイルを作成します(既にcron.sh
を呼び出しているため)。効率的に実行するには、PHP設定を理想的な設定に変更する必要があります。 IMHOストレートbashは行く方法です。そうすれば、nohup
は完全にバイパスできます。私は希望の意味
:MySQLはしっかり.SHファイルからDBに接続する
1)は、ログインパスを作成します。
sudo mysql_config_editor set --login-path=client --host=yourHost --user=MySQL_user --password
MySQLパスワードの入力を求めるメッセージが表示されます。
2)それが完了したら、あなたがそのようなようなあなたのbashのファイルでのMySQLにアクセスして、すべて同じファイルにログを作成することができます:ちょうど例です。もちろん、
#!/bin/bash
cd /place/where/you/want/the/csv/
wget http://your_file_location.com/csv/location/file.csv
# Or whatever you're doing to "download" it -- Just an example ..
mysql --login-path=local infile=1 3parsfdb -e "LOAD DATA LOCAL INFILE 'file.csv' INTO TABLE your_table FIELDS TERMINATED BY ','"
echo "Whatever you've collected" >> /var/www/html/outputs/`date "+%Y-%m-%d %H:%M:%S"`.log
が..しかし、あなた一般的な考えを得る。次に、bashファイルを安全な場所に保管します。
3)新しく作成したbashファイルをcrontabに入れます。あなたは、ユーザーはあなたがそれを置くbashのファイルまたはディレクトリへのアクセス権を持っていない場合は、ユーザーのcrontab
が、あるいは、あなたがルートのcrontab
使用することができます使用することができます - IE:
0 18 * * 0 /path/to/your/bash/file/BackupCSVToDB.sh
に持っていないの保存オーバーヘッドPHPを使用すると、実行時の文字通りの時間を節約できます。
出典
2017-04-07 17:49:18
Zak
改善点csvの内容をdbに入れるのにかかる時間は? –
申し訳ありませんが、非常に明確にしていません。 cronjobがPHPスクリプトを実行するプロセスの部分。例えば、 など。私はcronジョブなどから直接PHPスクリプトを実行するべきですか? – MagnusD
コメントに詳細を追加しないでください。代わりにあなたの質問を編集し、それがどこに属しているのかを入れてください。あなたの投稿には、*明らかで具体的な問題の説明*と、その問題に関連する特定の質問*が含まれていなければなりません。あなたはどちらも持っていない。 –