Probius:一個功能強大的自定義任務系統

斷更的這些日子,我又折騰了一個輪子,文末參考源碼

大約在一年半以前寫過一篇文章『探秘varian:優雅的發布部署程序』,裡邊有講到我們採用類似lego的模塊化方式來構建CICD的流程,雖能滿足我們的需求,但終究需要編寫代碼,使用成本有點高,不夠友好。近段時間終於下定決心將其重構,只為帶來更好的使用體驗,於是便有了這個項目Probius

Probius為遊戲星際爭霸里的角色,是一隻充滿好奇心的星靈探測機,取此名字的意思也是希望用戶能夠在這個系統中充分發揮想象,藉助此系統實現各種自定義的功能,覆蓋更多的運維場景

設計思路

Probius由三個關鍵詞構成:命令、模板、任務

命令:為系統中的最小粒度,可以是一個具體的linux命令,或者是一個腳本都可以

模板:模板為一組命令的集合

任務:模板為靜態的定義,而任務就是模板的執行,執行一個任務實際上就是去執行了一個模板內的所有命令

整體思想跟varian一樣,但不同的是可以僅僅通過web端的配置,就能實現各種各樣的功能,下邊具體介紹下如何配置的

頁面配置

新建命令,在這個頁面可以創建命令或者腳本

如果是單純的命令,直接在命令輸入框填寫即可,如果是需要執行腳本,則點擊腳本之後,會額外多出一個腳本輸入框,填寫要執行的腳本

理論上不限制腳本的類型,可以是shell、python或者go之類的,前提是系統上有腳本的運行環境,當命令或者腳本有參數的時候可以在參數列寫上參數名稱,然後在最終執行任務的時候需要傳遞具體參數的值過來

在命令執行完成后,會根據命令的返回狀態也就是$?的值來判斷命令是否執行成功,當$?為0是表示執行成功,否則表示執行失敗,如果是執行的腳本時,需要在腳本最後明確腳本返回狀態,shell腳本可以在腳本執行成功時通過exit指定退出狀態,例如

ls /ops-coffee.cn &&\
exit 0 ||\
exit 2

而對於python腳本則可以藉助sys.exit這樣寫

import sys

if 'www' in 'ops-coffee.cn':
  sys.exit(0)
else:
  sys.exit(3)

其他語言類似

模板的創建分為幾步,先創建一個模板

然後給模板添加任務

主要為選擇任務、確定執行順序、選擇執行主機以及執行用戶,添加完成后可以在模板詳情頁面看到關聯的命令

模板定義了一個完整的任務流程,定義完成后就可以執行任務了,執行任務界面寫的比較簡單

這界面主要給運維人員使用,定義任務名稱、所要執行的模板ID、以及參數,支持定時執行或者周期執行,只需要加上crontab參數即可,除了可以立即執行任務外,還可以將次任務保存為常用任務,後續在常用任務頁面可以直接執行

這個功能主要方便其他非運維人員使用本系統,同時也支持針對任務設置權限,可以將權限設置給某個用戶組,那麼則只有這個組內的成員可以看到並執行任務了

任務執行后可以通過任務歷史查看任務執行詳情,在這個頁面可以清晰的看到任務執行到了哪一步,是成功還是失敗

可以點擊每一步任務後邊的日誌查看實時日誌輸出

寫在最後

如果你用過我們開源的一站式DevOps平台CODO的話,會發現這個系統跟CODO的TASK模塊非常像,是的沒錯,這個設計與CODO的TASK如出一轍,但開源的CODO任務模塊要更加強大,例如支持分組執行、支持任務重做、支持人工干預等等

TASK的源碼在這裏:https://github.com/opendevops-cn/codo-task,感興趣可以自行閱讀部署,需要注意的是CODO為微服務架構,單獨安裝TASK是無法正常運行的,具體部署方法參考官方文檔

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※別再煩惱如何寫文案,掌握八大原則!

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※超省錢租車方案

※教你寫出一流的銷售文案?

網頁設計最專業,超強功能平台可客製化

.Net Core基礎的健康檢查

前言

健康檢查能查看我們的應用程序當前是否是一個健康的運行狀態。微軟已經給我們提供了健康檢查輪子,只需要簡單的配置就能完成服務的狀態檢查。一起來實現一個最簡單的健康檢查吧。

開始

  • 新建一個空的webApi項目。 並引用Microsoft.Extensions.Diagnostics.HealthChecks 包。並在ConfigureServicesConfigure中加入相關配置
public void ConfigureServices(IServiceCollection services)
{
    //健康檢查服務
    services.AddHealthChecks();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    //加入中間件
    app.UseHealthChecks("/healthChecks");
}

最簡單的檢查就完成了,我們測試一下。

返Healthy,表示服務正常。

自定義拓展

HealthChecks提供了一個IHealthCheck接口,這個接口只有一個CheckHealthAsync方法,我們只需要實現這個接口就可以實現我們需要的各種自定義的檢查項目。CheckHealthAsync返回一個HealthCheckResult的枚舉代表健康檢查的幾種狀態,分別是異常,降級,健康。

public enum HealthStatus
{
    Unhealthy = 0,
    Degraded = 1,
    Healthy = 2,
}

實現接口,返回不健康狀態。

public class SqlHealthChecks : IHealthCheck
{
    public Task<HealthCheckResult> CheckHealthAsync(HealthCheckContext context, CancellationToken cancellationToken = new CancellationToken())
    {
        if (1 == 1)
        {
            return Task.FromResult(HealthCheckResult.Unhealthy());
        }
    }
}

ConfigureServices中添加自定義的檢查,AddCheck可以添加你自定的健康檢查服務,

public void ConfigureServices(IServiceCollection services)
{
    //健康檢查服務
    services.AddHealthChecks().AddCheck<SqlHealthChecks>("key");
}

測試可以發現返回的為不健康的應用

自定義返回值

我們可以利用HealthCheckOptions來實現健康檢查的自定義返回內容.

private static Task WriteResponse(HttpContext context, HealthReport healthReport)
{
    context.Response.ContentType = "application/json";
    var result = JsonHelper.SerializeObject(new
    {
        code = context.Response.StatusCode,
        errors = healthReport.Entries.Select(e => new
        {
            key = e.Key,
            value = e.Value.Status.ToString()
        })
    });

    return context.Response.WriteAsync(result);
}


public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IHostApplicationLifetime appLifetime)
{

    app.UseHealthChecks("/healthChecks", new HealthCheckOptions{ResponseWriter = WriteResponse});

}

測試返回效果

引入Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore 可以為DbContext進行檢查


public void ConfigureServices(IServiceCollection services)
{
    services.AddHealthChecks().AddCheck<SqlHealthChecks>("key").AddDbContextCheck<DbContext>("DbContext");
}

健康檢查UI

引入AspNetCore.HealthChecks.UI並在ConfigureServicesConfigure中加入相應的配置

public void ConfigureServices(IServiceCollection services)  
{  
    services.AddHealthChecksUI();  
}  

public void Configure(IApplicationBuilder app, IHostingEnvironment env)  
{  
    app.UseHealthChecksUI();  
}  

appsetting,json文件中加入配置

{
  "HealthChecksUI": {
    "HealthChecks": [
      {
        "Name": "HealthCheck",
        "Uri": "https://localhost:5000/healthCheck"
      }
    ],
    "EvaluationTimeinSeconds": 10,
    "MinimumSecondsBetweenFailureNotifications": 60
  }
}

啟動項目並指向/healthchecks-ui。

擴展包

開源社區已經有很多現有的優秀的擴展包我們可以直接引用

AspNetCore.HealthChecks.Npgsql
AspNetCore.HealthChecks.Redis
AspNetCore.HealthChecks.AzureStorage
AspNetCore.HealthChecks.AzureServiceBus
AspNetCore.HealthChecks.MySql
AspNetCore.HealthChecks.DocumentDb
AspNetCore.HealthChecks.SqLite
AspNetCore.HealthChecks.Kafka
AspNetCore.HealthChecks.RabbitMQ
AspNetCore.HealthChecks.IdSvr
AspNetCore.HealthChecks.DynamoDB
AspNetCore.HealthChecks.Oracle
AspNetCore.HealthChecks.Uris
AspNetCore.HealthChecks.System
AspNetCore.HealthChecks.Network
AspNetCore.HealthChecks.SqlServer
AspNetCore.HealthChecks.MongoDb

參考文章

  • 微軟官方文檔
  • 社區
  • 源碼理解HealthCheck

總結

實現了一個最簡單的健康檢查功能,可以在這個基礎上進行自定義的擴展和開發。

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※教你寫出一流的銷售文案?

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※回頭車貨運收費標準

※別再煩惱如何寫文案,掌握八大原則!

※超省錢租車方案

※產品缺大量曝光嗎?你需要的是一流包裝設計!

Jmeter(十一) – 從入門到精通 – JMeter邏輯控制器 – 下篇(詳解教程)

1.簡介

Jmeter官網對邏輯控制器的解釋是:“Logic Controllers determine the order in which Samplers are processed.”。

意思是說,邏輯控制器可以控制採樣器(samplers)的執行順序。由此可知,控制器需要和採樣器一起使用,否則控制器就沒有什麼意義了。放在控制器下面的所有的採樣器都會當做一個整體,執行時也會一起被執行。

JMeter邏輯控制器可以對元件的執行邏輯進行控制,除僅一次控制器外,其他可以嵌套別的種類的邏輯控制器。

2.邏輯控制器分類

JMeter中的Logic Controller分為兩類:
(1)控制測試計劃執行過程中節點的邏輯執行順序,如:Loop Controller、If Controller等;
(2)對測試計劃中的腳本進行分組、方便JMeter統計執行結果以及進行腳本的運行時控制等,如:Throughput Controller、Transaction Controller。

3.預覽邏輯控制器 

首先我們來看一下JMeter的邏輯控制器,路徑:線程組(用戶)->添加->邏輯控制器(Logic Controller);我們可以清楚地看到JMeter5中共有17個邏輯控制器,如下圖所示:

如果上圖您看得不是很清楚的話,宏哥總結了一個思維導圖,關於JMeter5的邏輯控制器類型,如下圖所示: 

 通過以上的了解,我們對邏輯控制器有了一個大致的了解和認識。下面宏哥就給小夥伴或則童鞋們分享講解一些通常在工作中會用到的邏輯控制器。 

4.常用邏輯控制器詳解

  這一小節,宏哥就由上而下地詳細地講解一下常用的邏輯控制器。

4.1Interleave Controller

交替控制器,顧名思義是:互相交替,其節點下的取樣器交替執行。根據被控制器觸發執行次數,去依次執行控制器下的子節點<邏輯控制器、採樣器>。被觸發執行可以由線程組的線程數、循環次數、邏輯控制器觸發。

1、我們先來看看這個Interleave Controller長得是啥樣子,路徑:線程組 > 添加 > 邏輯控制器 > 交替控制器,如下圖所示: 

2、關鍵參數說明如下:

Name:名稱,可以隨意設置,甚至為空;

Comments:註釋,可隨意設置,可以為空;

Ignore sub-controller blocks:忽略子控制器,即子控制器失效,由交替控制器接管。

勾選后,會無視節點下的所有控制器<交替控制器、隨機控制器例外>,將每個取樣器作為一個單獨字節點執行
不勾選忽略子控制器,交替執行時,節點下次一級每個取樣器、邏輯控制器都認為是一個單獨子節點來交替執行。

Interleave across threads: 勾選此項,則交替控制器下的請求將應用至所有線程和循環中迭代。如有四個請求,三個線程,兩輪循環,那麼第一輪三個線程分別運行請求1,請求2,請求3,第二輪循環的三個線程運行請求4,請求1,請求2。

允許跨線程交替執行,勾選后,當線程組線程數大於1時,當前線程首次執行會根據線程數順序進行交替,後續執行按自己所屬線程的上一個次的執行的位置交替,如: 交替控制器下由A B C D  E 5個接口, 設置線程組 線程數3個,循環4次,則最終執行結果為  線程1執行 A B C D 線程2執行 B C D E 線程3執行 C D E A 。

 4.1.1簡單實例

1、首先在交替控制器下添加3個取樣器 訪問博客園首頁、訪問北京宏哥的博客園首頁和訪問北京宏哥的JMeter系列文章,線程組下添加一個取樣器 訪問度娘,與交替控制器同層級,線程組設置循環次數為2,如下圖所示:

2、配置好以後,運行JMeter,然後查看結果樹(循環兩次,每次只執行交替控制器里一個取樣器),如下圖所示:

4.1.2複雜實例

宏哥這裏講解的複雜使用,就是將交替控制器嵌套使用,來看看執行結果,從而更進一步的理解和學習交替控制器。

1、創建一個父交替控制器:北京宏爸,其下兩個子交替控制器:北京宏哥 北京宏弟,子交替控制器下面分別添加2個取樣器:訪問度娘  訪問博客園首頁,設置線程組循環次數10,如下圖所示:

2、配置好以後,運行JMeter,然後查看結果樹( 從結果可以看出,先交替子控制器的樣例,再交替父控制器下的樣例。大家明白了吧),如下圖所示:

4.1.3忽略子控制器塊

  在交替控制器的設置界面,有這樣一個選項,是否忽略子控制器,所以這裏一般也是交替控制器作為父級控制器時使用的選項,這裏的子控制器一般指非交替控制器的其他控制器 (如果子控制器也是交替控制器,該項實際和交替控制器的嵌套效果一樣了)

1、下面,我們在交替器下添加一個循環控制器,設置循環次數 2,線程組循環次數設置為 3,設置交替器 勾選 忽略子控制器,如下圖所示:

循環控制器:

線程組:

交替控制器:

2、 配置好以後,運行JMeter,然後查看結果樹( 從結果可以看出,循環控制器沒有執行2次,只執行了1次),如下圖所示:

3、下面,我們再把交替控制器中 忽略子控制器 去掉勾選,其他設置不變,如下圖所示:

4、配置好以後,點擊“保存”,運行JMeter,然後查看結果樹( 從結果可以看出,循環控制器執行2次,然後再執行 訪問度娘-哥弟 取樣器這樣交替執行了3次),如下圖所示:

綜上所述:以控制器為1個小單元,交替執行

4.2Once Only Controller

在每個線程內,該控制器下的內容只會被執行一遍,無論循環多少次,都只執行一遍。<嵌套在循環控制器之內時是個例外,每個線程組循環都會被執行一遍>。

此控制器通常用於控制需要登錄的請求,測試過程中,我們往往都只需要登錄一次,獲取到對應的登錄信息后即可執行後續相關的請求,而不是每執行一個請求都登錄一次,如將login請求放入僅一次控制器,則在線程組循環運行期間,不論循環次數設置為多少次,login請求都將僅在第一次執行時運行

 1、我們先來看看這個Once Only Controller長得是啥樣子,路徑:線程組 > 添加 > 邏輯控制器 > 僅一次控制器,如下圖所示:

2、關鍵參數說明如下:

Name:名稱,可以隨意設置,甚至為空;

Comments:註釋,可隨意設置,可以為空。

4.2.1實例

宏哥這裏以博客園發布文章為例,說一下測試場景:正常邏輯是我們需要一次登錄博客園然後多次發布文章;而不是發布一次文章就需要登錄一次博客園。以此為例添加測試腳本。

1、按照上邊的測試場景,宏哥添加測試腳本,如下圖所示:

 2、配置好以後,點擊“保存”,運行JMeter,然後查看結果樹( 從結果可以看出,一次登錄博客園然後多次發布文章;而不是發布一次文章就需要登錄一次博客園),如下圖所示:

4.2.2紅色字體實戰舉例 

<嵌套在循環控制器之內時是個例外,每個線程組循環都會被執行一遍>。

1、保持上邊的測試樹結構,然後將 僅一次控制器 用鼠標拖到 循環控制器 裡邊,如下圖所示:

 2、配置好以後,點擊“保存”,運行JMeter,然後查看結果樹( 從結果可以看出,宏哥設置了3個線程,每個線程都登錄一次博客園),如下圖所示:

4.3Random Controller

隨機控制器節點下的元件隨機運行,與交替控制器不一樣的是節點下的元件運行順序不定。

 1、我們先來看看這個Random Controller長得是啥樣子,路徑:線程組 > 添加 > 邏輯控制器 >  隨機控制器,如下圖所示:

2、關鍵參數說明如下:

Name:名稱,可以隨意設置,甚至為空;

Comments:註釋,可隨意設置,可以為空;

Ignore sub-controller blocks:忽略子控制器,即子控制器失效,由隨機控制器接管,類似交替控制器。

4.3.1簡單實例 

1、創建測試計劃,隨機控制下添加三個請求,控制器外一個請求,線程4個;如下圖所示:

2、配置好以後,點擊“保存”,運行JMeter,然後查看結果樹( 從結果可以看出,宏哥設置了4個線程,每個線程都要訪問一次北京宏哥的Jmeter系列文章,但是控制器下邊的取樣器的訪問卻是隨機訪問一個),如下圖所示:

4.3.2隨機嵌套循環-不忽略子控制器

1、按照小標題的內容,創建測試計劃,如下圖所示:

2、配置好以後,點擊“保存”,運行JMeter,然後查看結果樹( 從結果可以看出,宏哥設置了3個線程,隨機選擇隨機控制器下的兩個循環控制器),如下圖所示:

4.3.3隨機嵌套循環-忽略子控制器

1、按照小標題的內容,創建測試計劃,如下圖所示:

2、配置好以後,點擊“保存”,運行JMeter,然後查看結果樹( 從結果可以看出,宏哥設置了3個線程,循環控制器也失效了,每次都隨機選擇一個取樣器執行),如下圖所示:

4.3.4隨機嵌套交替-忽略子控制器

1、按照小標題的內容,創建測試計劃,如下圖所示:

2、配置好以後,點擊“保存”,運行JMeter,然後查看結果樹( 從結果可以看出,宏哥設置了10次循環,交替控制器也失效了,每次都隨機選擇一個取樣器執行),如下圖所示:

4.4Random Order Controller

隨機順序控制器其節點下的原件隨機執行,不過每個元件只執行一次。

當控制器被觸發時,將控制器下的所有子節點順序打亂執行一遍,執行一遍;執行一遍,不是執行一個。

注意:是將子節點的順序打亂,而非請求的順序打亂,子節點可以是其他邏輯控制器。

隨機控制器與隨機順序控制器名字十分接近,但兩者還是有着明顯的區別,可參考  上邊介紹的隨機控制器。

隨機控制器為每次只執行節點下的一個子節點,隨機順序控制器是將節點下的所有子節點都正常執行,只是將執行順序打亂

1、我們先來看看這個Random Order Controller長得是啥樣子,路徑:線程組 > 添加 > 邏輯控制器 > 隨機順序控制器,如下圖所示: 

2、關鍵參數說明如下:

Name:名稱,可以隨意設置,甚至為空;

Comments:註釋,可隨意設置,可以為空。

4.4.1實例

1、創建測試計劃,如下圖所示: 

2、配置好以後,點擊“保存”,運行JMeter,然後查看結果樹( 從結果可以看出,宏哥設置了3次循環,每次循環把所有的子節點都執行了),如下圖所示: 

4.5Recording Controller

其錄製控制器,顧名思義是錄製的時候會用到。實際上它是一個位置,當我們用JMeter代理進行錄製時,錄製的腳本默認放在此控制器的節點下面。沒有實際的邏輯作用,我們用簡單控制器也可以代替它。由於這個沒有用到過,這裏宏哥就不做詳細介紹了,如果後期用到的話,宏哥會單獨寫一篇關於錄製控制器的文章給小夥伴或童鞋們來答疑解惑。

1、我們先來看看這個Recording Controller長得是啥樣子,路徑:線程組 > 添加 > 邏輯控制器 > 錄製控制器,如下圖所示: 

2、關鍵參數說明如下:

Name:名稱,可以隨意設置,甚至為空;

Comments:註釋,可隨意設置,可以為空;

Forever:勾選上這一項表示一直循環下去。

5.小結

 

 好了,今天關於邏輯控制器的上篇就講解到這裏,這一篇主要介紹了 Interleave ControllerOnce Only ControllerRandom Controller  Random Order ControllerRecording Controller

 

您的肯定就是我進步的動力。如果你感覺還不錯,就請鼓勵一下吧!記得隨手點波  推薦  不要忘記哦!!!

別忘了點 推薦 留下您來過的痕迹

 

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※超省錢租車方案

※別再煩惱如何寫文案,掌握八大原則!

※回頭車貨運收費標準

※教你寫出一流的銷售文案?

FB行銷專家,教你從零開始的技巧

碳交易收益回饋弱勢 加州的能源正義之路

環境資訊中心綜合外電;姜唯 編譯;林大利 審校

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※Google地圖已可更新顯示潭子電動車充電站設置地點!!

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※別再煩惱如何寫文案,掌握八大原則!

網頁設計最專業,超強功能平台可客製化

麥加朝聖減環境足跡 綠色朝覲漸扎根

摘錄自2018年8月23日中央社報導

200多萬名穆斯林到麥加朝聖接近尾聲,數以千計清潔工忙著在垃圾當中將塑膠分離出來。這是全世界最大型的年度盛會之一,對沙烏地阿拉伯帶來巨大環保挑戰。

聖城麥加附近的米納(Mina)馬穆尼亞營地(Mamuniya)放置幾個不同顏色的大桶子:黑色桶收集有機垃圾,藍色桶回收鋁鐵罐和塑膠,這些都是為了減少朝覲環境足跡的作法。

麥加市公共衛生部門主管薩阿迪(Mohammed al-Saati)指出,到伊斯蘭教第一聖地朝聖期間,製造出的垃圾量超過4萬2000公噸。

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※想知道最厲害的網頁設計公司"嚨底家"!

※別再煩惱如何寫文案,掌握八大原則!

※產品缺大量曝光嗎?你需要的是一流包裝設計!

露西催生禁令 英擬禁寵物店售未滿6個月貓犬

摘錄自2018年8月23日中央社報導

英格蘭地區擬禁止寵物店銷售6個月以下的幼貓幼犬,民眾僅可領養或從合法繁殖者購買,而催生禁令的是一隻名叫「露西」、出生繁殖場的可憐小狗。

英國廣播公司(BBC)報導,英格蘭地區將從10月1日禁止銷售不滿8週大的幼貓幼犬,並計劃進一步擴大,限制出售6個月大的幼貓幼犬。

英國環境、食物及鄉村事務部表示,民眾目前可以直接從合法繁殖者,或是從合法的第三方賣家購買幼貓幼犬。然而,由於第三方賣家售出的寵物沒有數量紀錄,難以控管。

動保團體表示,僅能推估每年大不列顛地區(Great Britain)售出數量約在4萬至8萬隻,而根據政府紀錄,英格蘭地區僅有不到100家第三方賣家(包含寵物店)有販售貓犬的合法執照。

英國環境食品及農村事務部大臣戈夫(Michael Gove)表示:「我們會消滅繁殖場,確保第三方不能再販售小貓、小狗。」

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※別再煩惱如何寫文案,掌握八大原則!

※教你寫出一流的銷售文案?

※超省錢租車方案

FB行銷專家,教你從零開始的技巧

南非東岸鑽探石油 「活化石」腔棘魚恐絕種

摘錄自2018年08月26日蘋果日報南非報導

「活化石」腔棘魚(Coelacanth)有絕種危機!腔棘魚是南非最瀕危的魚類,南非東海岸有約30條,牠也是世上最稀有魚類,但義大利能源公司Eni計劃在發現腔棘魚水域附近勘探開採石油,危及牠們的將來。

英國《衞報》報導,腔棘魚是史前魚類,科學家原以為腔棘魚早已絕種,直至1938年在南非東岸海域才被重新發現,並在50年代於非洲島國科摩羅(Comoros)再發現數條,才證實沒有絕種。2000年在南非發現一條細小腔棘魚,令科學家大為興奮。

不過義大利能源公司Eni最近計劃開展400公里長的勘探,而腔棘魚的棲息地在勘探邊界外約40公里,距離鑽探場地以北近200公里。

腔棘魚專家布魯頓(Mike Bruton)指魚類對環境干擾很敏感,「任何干擾牠們吸氧能力的外物,如油污均會威脅牠們的生存。勘探期間出現漏油或井噴的風險及以後的商業活動,令人嚴重關切」。

去年Eni曾作環境評估,但報告提及對腔棘魚影響的範圍很小,相反報告指在油井旁沒有太大可能發現腔棘魚,又指已經針對海洋生態和漏油的專家研究,發現兩者沒有相關威脅。

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※別再煩惱如何寫文案,掌握八大原則!

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※超省錢租車方案

※教你寫出一流的銷售文案?

網頁設計最專業,超強功能平台可客製化

3個月捕鯨177頭!日堅稱出於「研究」目的

摘錄自2018年08月25日蘋果日報日本報導

據日本周三(22日)官方資料,一批捕鯨船3個月內,由西北太平洋捕獲177頭鯨魚。同一時間,日方正準備下個月於巴西舉行的世界捕鯨會議(International Whaling Commission, IWC)中爭取重啟商業捕鯨。

《Standard Digital》報導,據日本水產廳表示,這批捕鯨船共捉到43頭小鬚鯨與134頭北鬚鯨,再度引起國際關注。但外媒擔心,各國對日方的施壓只會使保守分子和政客更堅定地繼續進行捕鯨作業。

此外,日方也強調「這次出航獲得的研究資料都會交給世界捕鯨協會,有助提升大眾對於保育、管理海洋資源的知識。」並指出這次行動屬於12年計劃的一部分,且主要目的出於研究,部分品種也非瀕臨絕種,所以可以捕捉。

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※教你寫出一流的銷售文案?

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※回頭車貨運收費標準

※別再煩惱如何寫文案,掌握八大原則!

※超省錢租車方案

※產品缺大量曝光嗎?你需要的是一流包裝設計!

中國車廠挺禁售燃油車政策研究,有助新能源車加快發展

證券日報報導,中國工信部副部長辛國斌於今年9月初透露,工信部已啟動停止生產銷售傳統燃油汽車時間表的研究。靠研發生產電池起家的中國民營車企比亞迪董事長王傳福預測,中國2030年起將禁售傳統燃油汽車。而已在中國傳統燃油車做到自主品牌第一的長安汽車總裁朱華榮,更喊出2025年長安汽車將開始全面停止銷售傳統意義的燃油車,實現全系列產品的電氣化的目標。   據了解,德國宣布到2030年、法國宣布到2040年、英國宣布到2040年將禁止銷售傳統柴油車和汽油車,印度也宣布2030年要淘汰全部汽油車和柴油車。如果按照長安汽車2025年停售燃油車的時間表在中國全國執行,則中國將是第一個禁售傳統燃油車的國家。   對於長安汽車所提出的2025年停售傳統燃油車,市場分析,這可能與中國電動汽車百人會理事長陳清泰於9月下旬舉辦的中國電動汽車百人會常州論壇上表態有關,當時陳清泰提到,「最遲到2025年,電動汽車的性價比將達到或超過傳統燃油車」。   陳清泰的表態比王傳福2030年禁售傳統燃油車的表態晚了三天,但卻比王傳福更有分量,因為中國電動汽車百人會是一個與中國政府有著親密關係的非官方機構,機構顧問委員會有一批在職高官,例如科技部部長萬鋼、工信部部長苗圩。陳清泰非官方的表態可能接近中國官方接下來公布的停止生產銷售傳統燃油汽車的時間。   而中國在發展電動汽車方面,隨著政府後期出臺的新能源汽車補貼政策,目前中國新能源汽車市場幾乎被享受優惠政策的自主品牌車企壟斷;加上2018年至2019年「雙積分(車企油耗積分+新能源汽車積分)」制度的展開,中國車企在內有市場、外有政策支持的情況下,可能相較歐美國家先一步步入全面電動汽車時代。   (本文內容由授權使用。首圖來源:public domain CC0)  

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※Google地圖已可更新顯示潭子電動車充電站設置地點!!

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※別再煩惱如何寫文案,掌握八大原則!

網頁設計最專業,超強功能平台可客製化