ホームページ >バックエンド開発 >PHPチュートリアル >PinPHPバックグラウンドバッチ収集機能の二次開発・修正実装_PHPチュートリアル

PinPHPバックグラウンドバッチ収集機能の二次開発・修正実装_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 14:58:211065ブラウズ

私はしばらく PinPHP を使用して、Sae 上に環境をセットアップし、「Fashion Beauty」を約 1 か月間実行しました。そこで、最近このプログラムを研究し、いくつかの二次開発を行ったり、自分のプログラムを追加したりしています。自分の考え。たとえば、私は以前にブログ投稿を書きました: Renren アカウントのログインを追加し (実際には淘宝ログインも行いましたが、淘宝アプリケーション センターでのみ使用しました)、PinPHP コレクションを変更しました。

さて、今日はPinPHPのバックグラウンド一括収集機能の二次開発と修正実装についてお話します

最初にpinphpに接続して2.1ベータ版を使用しました。

現在、正式バージョン2.2がリリースされていますが、残念ながら皆さんが楽しみにしていた一括収集機能が期待通りにリリースされていなかったので、自分で改造してみました

実は、このプログラムは半月前に書いたのですが、仕事が少し忙しくて、自分で使っているだけで、その一方で、しばらくテストして改良していました。ところで。

元の実装を実装するのは非常に簡単です。主に、収集インターフェイスを変更し、収集する ID やキーワードなどを渡すためのいくつかのチェックボックスを追加します。

1. adminTpldefaultitems_collectcollect.html ページの 28 行目を変更します。

クリップボードにコピーLiehuo.Net Codes引用コンテンツ: [www.bkjia.com]

このページのバッチ収集のコードはまだ完成しておらず、コメントされているだけなので、公式はバッチ収集を試みるべきでした。

2. 次に、adminLibActionitems_collectAction.class.php に関数を追加し、元のコレクション関数を少し変更します

クリップボードにコピーLiehuo.Net Codes引用コンテンツ: [www.bkjia.com] 関数 ajaxCollect(){
set_time_limit(0);
$subname=$_REQUEST['subname'];
foreach($_REQUEST['cate'] as $k=>$v) {
if(!empty($subname[$k])){
$arrUrls[]='http://mmlike.sinaapp.com/mlike_admin.php?a=taabao_collect_jump&m=items_collect&pages=1&cate_id='.$v。 '&keywords='.$subname[$k];
}
}
$this->assign('url',json_encode($arrUrls));
$this->display('ajaxCollect');
この文には注意すべき情報がいくつかあります

クリップボードにコピー引用コンテンツ: [www.bkjia.com]Liehuo.Net Codes $arrUrls[]='http://mmlike.sinaapp.com/mlike_admin.php?a=taabao_collect_jump&m=items_collect&pages=1&cate_id='.$v.'&keywords='.$subname[$k]; page=1 は、1 ページあたり 40 個の商品を収集することを意味します。一度にさらに多くの商品を収集する必要がある場合は、自分で変更できますが、大きすぎる値を入力することはお勧めできません。 、収集時間が長く、その一方で、淘宝網の API リクエストが多すぎる可能性があります。

public functioncollect()関数を修正、前半のifを

に変更 クリップボードにコピー

引用コンテンツ: [www.bkjia.com] if(isset($_REQUEST['dosubmit'])){ Liehuo.Net Codes/******バッチコレクション*******/ $cate=implode(',',$_REQUEST['cate']); $this->ajaxCollect( );
//header("location:".U('items_collect/taabao_batch_collect_jump?act=batch&cate='.$cate));
/******バッチコレクション*******/
}
3. テンプレートに 1 つを追加します、
adminTpldefaultitems_collect

ajaxCollect.html

Copy to ClipboardLiehuo.Net Codes引用的内容:[www.bkjia.com]



ajax










php と js を知っている友人は、組み立てられたコレクションの URL を js 形式で配置し、setInterval タイマーを使用して定期的に ajax リクエストを実行し、すべての URL を走査することを理解する必要があります

完了するまで。当初、私はトラバーサルに direct ではなく setInterval を使用していました。これは、カテゴリが多すぎる場合、淘宝 API を頻繁にリクエストすると部分的な収集が失敗するのではないかと心配したためです。

X 上記の AJAX は、コレクションの正常な収集を容易にするために、以前は非同期リクエストを使用していました。

一定期間テストした結果、効果は得られましたが、カテゴリが多すぎるため、一度に収集するとブラウザがフリーズし、総収集時間も長くなってしまいます。まだ使用しています

非同期、遅延なし、収集時間の短縮も可能ですが、これについてはさらにコードを修正する必要があります。現在の効果は以下の通りです



進捗状況が%比率で表示され、最後に完了度や失敗数が表示されます。失敗したものは再度収集するか、未収集のものを確認して手動で収集することもできます。

この修正後は、元のコレクション機能も正常に使用できるようになります。

繰り返しになりますが、私は pinphp2.1 ベータ版を使用しています。他のバージョンを変更したい場合は、それを参照してください。変更されたファイルのパッケージを直接上書きすることはお勧めしません。最高です

コードを上書きする場合は、最初に元のファイルをバックアップして回復してください。

クリックしてダウンロード: pinphp バッチコレクション

チュートリアルのソース: http://meego123.net/?post=140

http://www.bkjia.com/PHPjc/363820.html

www.bkjia.com

http://www.bkjia.com/PHPjc/363820.html技術記事しばらくの間、PinPHP を使用して Sae 上に環境を構築し、「Fashion Beauty Exchange」を実行しました。そこで、最近このプログラムを勉強し、いくつかの二次開発を行っています...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。