A PHP Error was encountered

Severity: Warning

Message: Declaration of Administrator::insert() should be compatible with MY_Model::insert($data, $temp_key = NULL)

Filename: system/Administrator.php

Line Number: 259

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/system/BackPlatform.php
Line: 8
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 7
Function: __construct

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Administrator::update($idx) should be compatible with MY_Model::update($idx, $data)

Filename: system/Administrator.php

Line Number: 281

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/system/BackPlatform.php
Line: 8
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 7
Function: __construct

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Menu::insert() should be compatible with MY_Model::insert($data, $temp_key = NULL)

Filename: system/Menu.php

Line Number: 82

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/system/BackPlatform.php
Line: 9
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 7
Function: __construct

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Menu::update($idx) should be compatible with MY_Model::update($idx, $data)

Filename: system/Menu.php

Line Number: 95

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/system/BackPlatform.php
Line: 9
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 7
Function: __construct

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of MenuCategory::insert() should be compatible with MY_Model::insert($data, $temp_key = NULL)

Filename: system/MenuCategory.php

Line Number: 58

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/system/Menu.php
Line: 29
Function: model

File: /home2/beta/public_html/lupopi/application/models/system/BackPlatform.php
Line: 9
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 7
Function: __construct

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of MenuCategory::update($idx) should be compatible with MY_Model::update($idx, $data)

Filename: system/MenuCategory.php

Line Number: 68

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/system/Menu.php
Line: 29
Function: model

File: /home2/beta/public_html/lupopi/application/models/system/BackPlatform.php
Line: 9
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 7
Function: __construct

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Logo::upload_image($sub_idx) should be compatible with MY_Model::upload_image($idx, $temp_key = NULL)

Filename: system/Logo.php

Line Number: 100

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/system/BackPlatform.php
Line: 12
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 7
Function: __construct

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Logo::delete_image($sub_idx = NULL) should be compatible with MY_Model::delete_image($idx, $temp_key = NULL)

Filename: system/Logo.php

Line Number: 119

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/system/BackPlatform.php
Line: 12
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 7
Function: __construct

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of SEO::insert($property, $property_idx, $data) should be compatible with MY_Model::insert($data, $temp_key = NULL)

Filename: system/SEO.php

Line Number: 129

Backtrace:

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 7
Function: __construct

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of SEO::update($property, $property_idx, $data) should be compatible with MY_Model::update($idx, $data)

Filename: system/SEO.php

Line Number: 151

Backtrace:

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 7
Function: __construct

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of SiteInfo::get() should be compatible with MY_Model::get($idx)

Filename: system/SiteInfo.php

Line Number: 24

Backtrace:

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 7
Function: __construct

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of SiteInfo::update() should be compatible with MY_Model::update($idx, $data)

Filename: system/SiteInfo.php

Line Number: 37

Backtrace:

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 7
Function: __construct

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Google::update() should be compatible with MY_Model::update($idx, $data)

Filename: system/Google.php

Line Number: 34

Backtrace:

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 7
Function: __construct

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Article::insert() should be compatible with MY_Model::insert($data, $temp_key = NULL)

Filename: customize/Article.php

Line Number: 257

Backtrace:

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 8
Function: model

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Article::update($idx) should be compatible with MY_Model::update($idx, $data)

Filename: customize/Article.php

Line Number: 285

Backtrace:

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 8
Function: model

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Article::upload_image($idx, $sub_idx) should be compatible with MY_Model::upload_image($idx, $temp_key = NULL)

Filename: customize/Article.php

Line Number: 307

Backtrace:

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 8
Function: model

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Article_category::insert() should be compatible with MY_Model::insert($data, $temp_key = NULL)

Filename: customize/Article_category.php

Line Number: 49

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/customize/Article.php
Line: 31
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 8
Function: model

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Article_category::update($idx) should be compatible with MY_Model::update($idx, $data)

Filename: customize/Article_category.php

Line Number: 61

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/customize/Article.php
Line: 31
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 8
Function: model

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Article_tag::update($idx) should be compatible with MY_Model::update($idx, $data)

Filename: customize/Article_tag.php

Line Number: 71

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/customize/Article.php
Line: 32
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 8
Function: model

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of A2t::insert($article_idx, $tag_idx) should be compatible with MY_Model::insert($data, $temp_key = NULL)

Filename: customize/A2t.php

Line Number: 134

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/customize/Article_tag.php
Line: 20
Function: model

File: /home2/beta/public_html/lupopi/application/models/customize/Article.php
Line: 32
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 8
Function: model

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of A2p::insert($article_idx, $product_idx) should be compatible with MY_Model::insert($data, $temp_key = NULL)

Filename: customize/A2p.php

Line Number: 134

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/customize/Article.php
Line: 33
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 8
Function: model

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Product::insert($temp_key) should be compatible with MY_Model::insert($data, $temp_key = NULL)

Filename: customize/Product.php

Line Number: 288

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/customize/A2p.php
Line: 19
Function: model

File: /home2/beta/public_html/lupopi/application/models/customize/Article.php
Line: 33
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 8
Function: model

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Product::update($idx) should be compatible with MY_Model::update($idx, $data)

Filename: customize/Product.php

Line Number: 305

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/customize/A2p.php
Line: 19
Function: model

File: /home2/beta/public_html/lupopi/application/models/customize/Article.php
Line: 33
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 8
Function: model

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Product_category::insert() should be compatible with MY_Model::insert($data, $temp_key = NULL)

Filename: customize/Product_category.php

Line Number: 189

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/customize/Product.php
Line: 39
Function: model

File: /home2/beta/public_html/lupopi/application/models/customize/A2p.php
Line: 19
Function: model

File: /home2/beta/public_html/lupopi/application/models/customize/Article.php
Line: 33
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 8
Function: model

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Product_category::update($idx) should be compatible with MY_Model::update($idx, $data)

Filename: customize/Product_category.php

Line Number: 202

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/customize/Product.php
Line: 39
Function: model

File: /home2/beta/public_html/lupopi/application/models/customize/A2p.php
Line: 19
Function: model

File: /home2/beta/public_html/lupopi/application/models/customize/Article.php
Line: 33
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 8
Function: model

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of A2c::insert($article_idx, $category_idx) should be compatible with MY_Model::insert($data, $temp_key = NULL)

Filename: customize/A2c.php

Line Number: 132

Backtrace:

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 14
Function: model

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Tracking_code::insert($temp_key) should be compatible with MY_Model::insert($data, $temp_key = NULL)

Filename: customize/Tracking_code.php

Line Number: 35

Backtrace:

File: /home2/beta/public_html/lupopi/application/helpers/header_helper.php
Line: 9
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 207
Function: get_header_footer

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 224
Function: article

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Tracking_code::update($idx) should be compatible with MY_Model::update($idx, $data)

Filename: customize/Tracking_code.php

Line Number: 47

Backtrace:

File: /home2/beta/public_html/lupopi/application/helpers/header_helper.php
Line: 9
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 207
Function: get_header_footer

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 224
Function: article

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of About::insert() should be compatible with MY_Model::insert($data, $temp_key = NULL)

Filename: customize/About.php

Line Number: 25

Backtrace:

File: /home2/beta/public_html/lupopi/application/helpers/header_helper.php
Line: 10
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 207
Function: get_header_footer

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 224
Function: article

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of About::update($idx) should be compatible with MY_Model::update($idx, $data)

Filename: customize/About.php

Line Number: 36

Backtrace:

File: /home2/beta/public_html/lupopi/application/helpers/header_helper.php
Line: 10
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 207
Function: get_header_footer

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 224
Function: article

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Service::insert() should be compatible with MY_Model::insert($data, $temp_key = NULL)

Filename: customize/Service.php

Line Number: 25

Backtrace:

File: /home2/beta/public_html/lupopi/application/helpers/header_helper.php
Line: 11
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 207
Function: get_header_footer

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 224
Function: article

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Service::update($idx) should be compatible with MY_Model::update($idx, $data)

Filename: customize/Service.php

Line Number: 38

Backtrace:

File: /home2/beta/public_html/lupopi/application/helpers/header_helper.php
Line: 11
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 207
Function: get_header_footer

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 224
Function: article

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Front_menu::update($idx) should be compatible with MY_Model::update($idx, $data)

Filename: customize/Front_menu.php

Line Number: 102

Backtrace:

File: /home2/beta/public_html/lupopi/application/helpers/header_helper.php
Line: 12
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 207
Function: get_header_footer

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 224
Function: article

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

避免 cron 程式重複執行

A PHP Error was encountered

Severity: Warning

Message: Declaration of User::update($idx) should be compatible with MY_Model::update($idx, $data)

Filename: customize/User.php

Line Number: 89

Backtrace:

File: /home2/beta/public_html/lupopi/application/helpers/user_helper.php
Line: 23
Function: model

File: /home2/beta/public_html/lupopi/application/views/front/common/menu_mobile.php
Line: 17
Function: is_user_login

File: /home2/beta/public_html/lupopi/application/helpers/header_helper.php
Line: 66
Function: view

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 207
Function: get_header_footer

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 224
Function: article

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Cart_setting::get() should be compatible with MY_Model::get($idx)

Filename: system/Cart_setting.php

Line Number: 18

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/system/Cart.php
Line: 11
Function: model

File: /home2/beta/public_html/lupopi/application/helpers/cart_helper.php
Line: 9
Function: model

File: /home2/beta/public_html/lupopi/application/views/front/common/menu_mobile.php
Line: 23
Function: get_cart_quantity

File: /home2/beta/public_html/lupopi/application/helpers/header_helper.php
Line: 66
Function: view

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 207
Function: get_header_footer

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 224
Function: article

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Cart_setting::update() should be compatible with MY_Model::update($idx, $data)

Filename: system/Cart_setting.php

Line Number: 31

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/system/Cart.php
Line: 11
Function: model

File: /home2/beta/public_html/lupopi/application/helpers/cart_helper.php
Line: 9
Function: model

File: /home2/beta/public_html/lupopi/application/views/front/common/menu_mobile.php
Line: 23
Function: get_cart_quantity

File: /home2/beta/public_html/lupopi/application/helpers/header_helper.php
Line: 66
Function: view

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 207
Function: get_header_footer

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 224
Function: article

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

0

A PHP Error was encountered

Severity: Warning

Message: Declaration of Page_banner::update($idx) should be compatible with MY_Model::update($idx, $data)

Filename: customize/Page_banner.php

Line Number: 98

Backtrace:

File: /home2/beta/public_html/lupopi/application/helpers/header_helper.php
Line: 153
Function: model

File: /home2/beta/public_html/lupopi/application/views/front/blog/main.php
Line: 1
Function: get_page_banner

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 214
Function: view

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 224
Function: article

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Page_banner::upload_image($idx, $sub_idx) should be compatible with MY_Model::upload_image($idx, $temp_key = NULL)

Filename: customize/Page_banner.php

Line Number: 110

Backtrace:

File: /home2/beta/public_html/lupopi/application/helpers/header_helper.php
Line: 153
Function: model

File: /home2/beta/public_html/lupopi/application/views/front/blog/main.php
Line: 1
Function: get_page_banner

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 214
Function: view

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 224
Function: article

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

避免 cron 程式重複執行

未分類
寫 cron 自動執行的時候



一直有個困擾



因為時間到



cron 就會把你指定的命令叫起來執行



無標題







程式被叫起來的中間



總是會有個時間間隔



間隔中



如果程式執行不完



cron 又會再把程式叫起來一次



然後越跑越多



就會出現事情搶著做 重複做 的問題



(資訊工程上叫做 Race Condition)



然後機器就會被拖垮



這可是大事情





其實很久以前就遇到這個問題



因為有念過資工



所以知道要弄 lock 或是 critical section 之類的



讓後續跑起來的程式去 check 這個 lock



如果還在跑 就放棄



自己寫有點麻煩



雖然有些 function 可以弄這些功能



但沒控制好還是有爆炸的可能





最近又遇到了一樣的狀況



想說查一下有沒有什麼新的作法



果然查到了



https://ma.ttias.be/prevent-cronjobs-from-overlapping-in-linux/



其實也不是什麼新方法



只是之前沒查到比較像樣的方法



文中提到三個方法



1. flock



2. pgrep



3. 自己寫 (用鎖檔案的方式)



其中 1 最簡單



原本的 cron 是這樣 (用一個 php 解譯器去跑一個 php 程式)



* * * * * /usr/bin/php /path/to/cron.php



你只要改成這樣



* * * * * /usr/bin/flock -w 0 /path/to/cron.lock /usr/bin/php /path/to/cron.php



/path/to/cron.lock <= 這個是一個 lock 的檔案



2比較麻煩 (就不介紹了)



3自己寫更麻煩



會這招以後



你就可以把 cron 的時間設定密集一點



如果上一個工作一做完



下一個 cron 就可以接上



既不浪費時間 又可以避免重複執行